Ruby関連のことを調べてみた2021年07月27日

Ruby関連のことを調べてみた2021年07月27日

[Rails]seedファイル使い方

今回はRailsで開発を行っていく中で、便利な機能`seedファイル`の使い方について解説していきます。

きっと便利に開発を進められるので、参考にしてみてください。

#seedファイルとは

開発段階のデータ作成方法として、実際にcreate機能を実装してからアプリを操作してデータを作る方法や`rails c`からデータを作成する方法などがありますが、どちらも大量のデータを作ろうとすると正直めんどくさいです。。

そこで使われるのが`seedファイル`です。

seedファイルのメリットとして、

– 開発段階で動作確認用に初期データを入れられる
– データベースをリセットしても、seedファイルに入っている初期データは再び使える
– 一度に大量のデータを作成できる

というメリットがありますので、開発するときに便利なので、知っておいて損のない機能となってます。

初期データとして管理者のデータも入れられるので、管理者が必須なアプリの場合は、使う場合が多いです。

#初期データ作成

では、実際に初期データを作っていきます。

seedファイルはデフォルトで搭載されていて、`dbデ

元記事を表示

ローカルにおけるrubyとrailsの環境構築

実際の開発業務に参加した際に、ローカルでrubyとrailsの開発環境をセットアップして、苦労したのでその軌跡をまとめておく。
なお今回のインストールするバージョンは以下の通りである。

ruby 2.7.1
rails 6.0.3
mysql 5.7

## 参考記事

https://qiita.com/is-lab/items/e0443b79da117ed48294

[Rails]Macでrails sを立ち上げる場合

https://weblabo.oscasierra.net/mysql-57-homebrew-install/

https://teratail.com/questions/330012

### Homebrewのインストール

“`
– MacにHomebrewをinstallする
$ /bin/bash -c “$(curl -fsSL )”

– Homebrewのupdateの準備
$

元記事を表示

[Ruby]layoutsファイルと7つのアクション

# はじめに
本記事は、本日私が理解できていなかった
「layouts」ファイルの中身について書きました。
今回は、これに何時間もかかりましたので、備忘録として投稿します。

# layoutsファイルには
具体例

“`ruby



省略

元記事を表示

meta-tagsについて

# Gem meta-tags について

今回SEO対策として何か実装したいと考えて調べてみた所、meta-tagsというGemを知りましたので、実際に使ったので備忘録として記入したいと思います。

#meta-tagsの導入

“`routes.rb
Gem ‘meta-tags’
“`

bundlerでインストール

“`ターミナル
bundle exec
“`

これで導入完了です

# 各種設定

上記の作業を正常に完了してれば“`config/initializers/meta_tags.rb“`という感じにファイルが生成されています。
meta-tagsの内容は下記の通りです。

“`meta_tags.rb
# Use this setup block to configure all options available in MetaTags.
MetaTags.configure do |config|
# How many characters should the title meta tag have at most. Default is

元記事を表示

Active Storageの導入

#Active Storageとは?
ファイルアップロード機能を簡単に実装できるGemです。

ActiveStorageを導入しただけではファイルをアップロードできるようになるだけです。

保存した画像を画像を加工してから(サイズや色など)表示できるようにするには以下の画像加工ツールとgemが必要になります。

## ImageMagick
コマンドラインから画像に処理を加えることができるツールです。
処理としては、画像の作成やサイズ変更、保存形式の変更などがあります。

ImageMagickはGemではなく、ソフトウェアです。
そのため、Homebrewからインストールします。

GemではないImageMagickをRubyやRailsで扱うには、MiniMagickというGemが必要となります。

## MiniMagick
ImageMagickの機能をRubyで扱えるようにしてくれるGemです。
RailsでImageMagickを扱うために必要となります。

MiniMagickによって、ImageMagickの機能がRailsで使用できるようになりますが、画像サイ

元記事を表示

【Rails】ポートフォリオ

# E-tripp

e-trrip_readme

# ?はじめに
 今回のこのポートフォリオは**転職を目的**として作成しました。ただ作成するのではなく、**現場を意識してdevelopからブランチを切り最後にmasterでデプロイをする開発工程**で行いました。

 また、だらだら作っていてはいつまで経っても転職活動ができないと考え、自分で**納期日(完成予定日)と、工程をAプラン(終わったら転職活動スタート)・Bプラン(転職活動中)と分けて取り組む**ようにしました。以下はAプランの実装で、制作期間は**約1ヶ月**です。

#?制作背景
### **課題**
– 旅

元記事を表示

関数と文字列まとめ

:::note info
こんにちは、にんじゃわんこさん
:::

#JavaScript#

“`JavaScript:JavaScript
const name = “にんじゃわんこ”;
console.log(`こんにちは、${name}さん`);
“`

“`JavaScript:JavaScript
const name = “にんじゃわんこ”;
console.log(“こんにちは、” + name + “さん”);
“`

#Ruby#

“`Ruby:Ruby
name = “にんじゃわんこ”
puts “こんにちは、#{name}さん”
“`

“`Ruby:Ruby
name = “にんじゃわんこ”
puts “こんにちは、” + name + “さん”
“`

:::note alert
連結は文字列同士でしかできないため、基本的に変数展開を使うのが無難
:::

元記事を表示

[Ruby]文字列(String)のtrue、falseをBoolean(TrueClass、FalseClass)へ変換

rubyでture、falseの入力を文字列(Stirng)として受け付けたとき、Boolean型のtrue、falseとして扱うために変換するコードを紹介します。

## 前提
Rubyでは**nillかfalse以外をtrue**として扱います。
そのため、文字列のfalseを条件文に利用すると、論理値としてはtrueになってしまいます。

“` false.rb
bool = gets
p bool.class

if bool
p “Trueです!”
else
p “Falseです!”
end

=====入力・出力結果=====
false
String
“Trueです!”
“`

## String→Booleanの変換コード、動作の紹介
文字列のtrue、falseをBooleanに変換する方法を早速紹介します。

“` string→boolean変換.rb
class String
def to_bool
# 関数の呼び出し元文字列がtureだったらBoolean型のtrueを返す
if self =~ /(true|True|TRU

元記事を表示

Railsでサイトを作成する下準備までの大まかな手順

#  記事の目的
 Cloud9にてECサイトを作るにあたって「何から始めればいいんだっけ?」と思いQiitaを含めて何回か参照していましたが、流れがまとまらなかったので自分用の備忘録として記載します。参考までに。
 本当に大まかにまとめたので、詳細箇所については別途追記するかもしれません。

# ECサイト作成前に準備すること。
 個人製作の場合は必ず必要というわけではないですが、作成する前に作っておくと後々サイトを作りやすいです。
Cacooというサイトであれば両方作成できるので、おすすめです。
####・ER図
####・ワイヤーフレーム
####・GitHubの連携
####・ImageMagickのインストール

# ファイル・モデル・コントローラーの作成
####①ファイルの作成
※Cloud9にて諸々の初期設定が終わっていること。これに関しては個人の設定に左右される。
ターミナルを開いて、下記を入力しファイルを作成する。
(例)として、ファイル名を「Illusters」というアプリを作るものとします。

“`
【ターミナル】
~$ rails new ファイ

元記事を表示

config gem と dotenv-rails gem を共存させるときの ポイント

Rails での開発では、以下の2つのgemを使い分けたり、併用して設定情報を管理する方が多いかと思います。

– config gem
yaml 管理
– dotenv-rails gem
.env(及び環境変数) での管理

ですが、「設定情報を、 yaml に記載したのか、.env(及び環境変数)に記載したのか?」と分からなくなり手が止まる瞬間があります。
なので、最近は config gem を介して .env を参照するようにして、設定情報の参照先を一本化しています。
その中で、以下の 2 つのポイントのどちらかを押さえておかないとエラーになることを確認したので、共有します。

# 実行環境

– Ruby 3.0.0
– Rails 6.1.4

# 前提

読み込みの対象になる yaml と、.env ファイルは以下のものになります。

“`yaml
# config\settings.yml
comment: これはテスト用アプリ

# .envに記載した環境変数 SAMPLE_API_KEY の内容を読み込む
sample_api_key: <%=

元記事を表示

deviseでログイン後のリダイレクトを変更したい

app/controllers/users/sessions_controller.rb
“`
def after_sign_in_path_for(resource)
articles_path
end
“`

元記事を表示

[Rails]Twitterシェアボタンは超かんたんに実装できる

色んなサイトで見かけるTwitterのシェアボタン実は、超かんたんに実装できます。

まじですぐ実装できるので、記事が短くなりすぎてしまいそうで不安ですw

# こんな感じ

![スクリーンショット 2021-07-26 10.22.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1554142/3de3572b-269c-7b05-f9e6-2733d6637d60.png)

シェアボタンを押すとこんな感じで、Twitterに飛びます。

![スクリーンショット 2021-07-26 10.24.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1554142/ae9349f0-662b-d33e-40c7-870e7cf7f3da.png)

かんたんにシェアできるので便利ですね〜

[ポートフォリオサイト](https://oogiri-legendroad.com/)のせておきますので、どんどんシェアして

元記事を表示

カート機能②カートに入れる 同一商品は個数のみ更新する

はじめに

カート機能を作成中です。
 ”今回はカートに入れる”とカートに入るようにします。
同一商品の場合には、個数のみが更新されるようにします。

前提条件

ここで登場するテーブル・モデルは、
Customer
Item
Cart_item です。←(CustomerとItemの中間テーブルになる。)
(Cartモデルを作成している記事が多いですが、Cartモデルは作成していません。)

*ログインしなくても商品の閲覧はできるが、カートには入れられない。

View 個数を選択してカートに入れる

“`
#関係するところのみ抜粋
<%= form_with model:@cart_item,url:cart_items_path,method: :post,local:true do |f| %>
<%= f.hidden_field :item_id, value: @item.id %>
<%= f.hidden_field :customer_id, :value => current_customer.id %>

元記事を表示

過去7日間の投稿をグラフ表示 Chartkick Turbolinks無効化

やりたいこと

過去7日間の投稿数を取得し、折れ線グラフで表示する.
グラフが表示できなかったり、12日分表示してしまったり・・・ととにかく大変でした。
そもそもJavascriptの知識が浅いため、、難しかったです。

![スクリーンショット 2021-07-26 8.51.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/2f664058-26d2-a516-6794-4ad749daea46.png)

7日間の投稿データ取得

前回作成した記事と同様です。グラフ化が大変だったのでここはサクッと行きます:anchor:

https://qiita.com/ki_87/items/cbfdb803355ba4e4fe55

違う点は、、
コントローラーに記述しなくても、モデルで定義した値をviewで使用できるということです。

7日間の投稿データ取得

“`perl:models

元記事を表示

railsのコントローラーでAPIの必須項目の入力チェックする

railsのコントローラーでAPIの必須項目が入力されているかチェックする方法です。
どんなケースで使うのか具体的な使い方を書いていきます。
rails guideには以下の説明がされています。

> In addition, parameters can be marked as required and will flow through a predefined raise/rescue flow that will result in a 400 Bad Request being returned if not all required parameters are passed in.

https://guides.rubyonrails.org/action_controller_overview.html#strong-parameters

## サンプルコード

“`ruby
class UserController < ApplicationController rescue_from ActionController::ParameterMissing,

元記事を表示

[Rails]値オブジェクトとは?〜使い方と注意点を押さえる〜

# はじめに
開発の規模が大きくなればなるほど、モデルが肥大化するFat Modelという問題が発生しやすくなります。そこで、`値(Value)オブジェクト`という設計手法を利用することでこの問題が解決出来ますので、利用方法と注意点をしっかり押さえて導入を検討してみましょう!

# 値オブジェクトとは?
値オブジェクトとは、読んで字の如く、「値」を表すオブジェクトなのですが、この値とはドメイン駆動設計という設計手法に登場する概念で、同一性を判断できない情報のことを指します。
値オブジェクトを利用することで、コードを綺麗に保ち見通しが良くなることで、テストが書きやすくなり、Fat Modelの問題を解消できます。また、**オープン・クローズドの原則**という、`あるクラスを修正したとき、他のクラスに影響が出ない設計`を実装できます。

## 例
山田さんと田中さんがいるとします。この2人の血液型はどちらもA型です。血液型が同じだからといって、同一人物となるわけではありません。
こういった、値が同じでも同一だと断定できない情報のことを値オブジェクトと呼びます。
※住所や名前なども同様です

元記事を表示

いいね機能実装 [Ruby on Rails]

##完成品
![いいね機能1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798471/bd7523ee-bcc5-d2c2-3703-abc613176059.gif)

投稿にいいね機能を実装する。
テーブルは、Users,Booksに加えFavoritesを追加する。
##実装の手順
①モデルの作成
②ルーティングを追加
③それぞれのモデルに関連付けを追加
④コントローラを作成
⑤Viewを作成する
###①モデルの作成
“`ruby:terminal
$rails g model Favorite user_id:integer book_id:integer
“`
**user_id**:userとの紐づけ
**book_id**:book投稿との紐づけ
**integer**:データ型の整数

###②ルーティングを追加
“`ruby:routes.rb
resources :books do
resource :favorites , only: [:create , :

元記事を表示

Ruby備忘録、Rubyの特に分かりにくかったところ、メソッド呼び出しのカッコ省略等

# この記事について

ruby学習中のため、その備忘録です。railsの話はほぼ出てきません。
rubyを学習していて特に分かりにくかったところなどを中心に書いています。

# 他言語からRubyへ

PHPやPython等他言語を使ってる人に対しては、Ruby公式サイトにそれぞれの言語とRubyの違いについて書かれたページがあります。

[他言語からのRuby入門
](https://www.ruby-lang.org/ja/documentation/ruby-from-other-languages/)

# メソッド呼び出しのカッコ省略、return省略

## 引数無しのメソッド呼び出しのカッコ省略

rubyではメソッド呼び出しの際カッコを省略することができます。

“`ruby
def hello
puts ‘hello!’
end

hello() # hello!
hello # hello!
“`

## 引数ありのメソッド呼び出しのカッコ省略

引数がある時もカッコの省略ができます。
引数が複数ある場合は`,`で繋ぎます。

“`ruby
def

元記事を表示

ディスク空き容量を取得するFluentdのプラグイン作った

# プラグイン作りました
fluentdという様々なデータ収集を統一できるオープンソースのソフトウェアがありますが、プラグインを入れることによって様々で種類のデータを取得したり、加工したりすることができるようになります。

今回は、fluentdを動かしているPCのディスク容量を取得したかったのですが、よさげなプラグインがなかったので作ってみました。RubyGemにも公開済みです。OSSなのでPR, issue歓迎です?‍♂

https://github.com/nomunomu0504/fluent-plugin-diskfree

https://rubygems.org/gems/fluent-plugin-diskfree

# 使い方
プラグインをGemでインストールします。

“`
$ gem install fluent-plugin-diskfree
“`

これでプラグインが利用できるようになるので、fluentdの設定ファイルに追記します。

“`conf@type diskfree
option -k
refresh_int

元記事を表示

モデルの作成・削除、カラムの追加・削除の仕方 [Ruby on Rails]

##データベース、テーブル、カラム、レコードの意味
![222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798471/f4271fe8-2fa0-f954-481c-e56cf7990b8d.png)
この画像にない**モデル**は、テータベースの設計図であり、テーブルの総称と考えていいでしょう。

>引用 : [Railsにおけるモデルについて](https://qiita.com/okamoto_ryo/items/f6be7ecc5cf5988c5773)

##モデル(テーブル)の作成

“`ruby:terminal
$ rails generate model [モデル名] [カラム名:データ型 カラム名:データ型・・・] [オプション]
$ rails generate model User name:string email:string
#最後忘れずに更新
$ rails db:migrate
“`
コマンドを実行すると以下の4つが自動生成されます。
・モデルのクラスファ

元記事を表示

OTHERカテゴリの最新記事