Rails

content_forを使ってタイトルを動的に出力する【rails】

はじめに railsアプリでcontent_forを使ってタイトルを動的に出力する方法について タイトルを動的に出力する まず、ヘルパーに下記のメソッドを定義します。 module ApplicationHelper def pages_title(page_title = '') base_title = 'BOARD APP' page_tit…

【rails】ルーティングをネストしてshallowオプションをつける

はじめに railsでルーティングを作成する時、ネストしたあと簡略化するためにshallowオプションをつける 設定方法 postモデルとcommentモデルが1対多数の関係にあり、 わかりやすくするためにルーティングをネストする場合。 resources :board, only: %i[ind…

【rails】carrierwaveを使って画像アップロード機能を追加する

はじめに railsアプリにcarrierwaveを使って画像アップロード機能を追加する方法について 設定方法 まず、Gemfileにcarrierwaveを記載して、bundle installします。 gem 'carrierwave' 続いて、下記コマンドでアップローダーを生成。 $ rails g uploader <カ…

railsのタイムゾーンを日本時間に変更する

はじめに railsアプリのタイムゾーンの設定を日本時間に変更する方法について 設定方法 config/application.rbファイルを以下のように変更します。 module RunteqNormal class Application < Rails::Application config.time_zone = 'Tokyo' # アプリのデフ…

railsのn+1問題をincludesで対策

はじめに railsアプリケーションで起こる、n+1問題をincludesを使って対策する方法について n+1問題とは n+1問題とは、1回のアクセスでいいのに何回もデータベースにアクセスしてしまい、 それによってページの読み込み速度の低下などにつながってしまうこと…

Fakerを使ってseeds.rbファイルにテストデータを定義する

はじめに Fakerを使ってデータを作成する方法について seeds.rbは、アプリケーションの挙動などを確認するために必要なテストデータを定義しておくファイルです。 rails db:seedを実行することで、そのファイルに定義しているテストデータを一気に生成できま…

railsにdecoratorを導入して使う

はじめに railsにdecoratorを導入して使う方法について decoratorの設定方法 デコレーターとは、主にモデルに関連するビューのロジックをおいておくための補助機能のようなものです。 ビューに直接メソッドを書いたりモデルに書いたりすると、コードが肥大化…

【rails】フラッシュメッセージの設定

はじめに フラッシュメッセージの設定について フラッシュメッセージの設定 Bootstrapに用意されているスタイルのフラッシュ一覧 :alert, :notice ※デフォルト :success, :info, :warning, :danger applicationコントローラに下記のadd_flash_typesを定義す…

railsにi18nを導入して日本語化対応にする

はじめに rails-i18nというgemを導入してアプリケーションを日本語対応にする方法について i18nを導入する方法 まずはGemをインストールします。 gem 'rails-i18n' $ bundle install このGemをインストールすることで、エラーメッセージや一般的な言葉などに…

railsにsoeceryを導入してログイン機能を実装する

はじめに soeceryを導入してログイン機能を実装する方法について soeceryの導入方法 gem 'sorcery' まずはGemfileに上記のような記載をしてインストールします。 $ bundle install $ rails g sorcery:install Userモデルやマイグレーションファイルが作成さ…

【rails】CSSの読み込みについて

はじめに railsでビューにCSSを読み込む方法について CSSの読み込み ビューへのcssの読み込みについては、デフォルトで次のように記載されています。 <%= stylesheet_link_tag 'application', media: 'all' %> つまり共通ビューであるapplication.html.erbで…

【rails】image_tagの使い方

はじめに image_tagの使い方について image_tagの使い方 まずrailsでの画像の保存先についてですが、主に2つあります。 app/assets/imagesまたはpublicのどちらかです。 例えば、rails.jpgという画像ファイルがある場合、画像の呼び出し方については以下の通…

【エラー】SQLite3::SQLException: table "〇〇" already existsの解決法

はじめに モデルを作成する際に、SQLite3::SQLException: table "〇〇" already existsというエラーに遭遇したのでその対処法。 SQLite3::SQLException: table "〇〇" already existsの解決法 commentsモデルを作成するためにrails db:migrateを実行した時に…

【rails】generateコマンドで生成されるファイルを設定する

はじめに railsでgenerateコマンドを実行する際に、自動で生成されるファイルを設定する方法について 設定方法 $ rails g controller users 例えば、上記のコマンドを実行すると下記のようなファイルが生成されます。 Running via Spring preloader in proce…

AdminLTEを導入して管理画面を作る

はじめに AdminLTEを導入して管理画面を作る方法について AdminLTEの導入方法 まずはyarnを使ってAdminLTEをインストールします。 $ yarn add admin-lte バージョンを指定する場合 $ yarn add admin-lte@^3.0 これでadminlteの3系がインストールされます。 …

RSpecでテスト実行時のブラウザの表示・非表示の設定

はじめに RSpecでテストを実行する際に、ブラウザを表示するかしないかの設定について 設定方法 まず、下記のGemをインストールします。 group :test do gem 'capybara' gem 'webdrivers' end 続いて、specディレクトリ以下に'support'ディレクトリと、'driv…

RSpecで特定のテストだけを実行したいときの設定

はじめに RSpecで特定のテストだけを実行したいときについて $ rspec spec/system/task_spec.rb:10 上記のようにファイル名とテストしたい行を指定すれば、特定のテストだけを実行できますが、 次の設定をすることでもっと簡単に呼び出せます。 設定方法 RSp…

【Rails】strftimeメソッドで日付の書式を変更する

はじめに strftimeメソッドで日付の書式を変更する方法について strftimeメソッドで日付の書式を変更する strftimeメソッドは、下記のようにTimeクラスやDateクラスのインスタンスに対して使います。 now_time = Time.current now_time.strftime('日付の書式…

【RSpec】"let"と"let!"とbeforeの違いと実行順序

はじめに rspecのテストコードを書くために"let"と"let!"の違いを調べていたところ、 今度は"let!"と"before"の違いや実行順序に関して気になったのでまとめてみました。 "let"とは rspecには"let"というメソッドがあります。 これは呼び出された時にはじめ…

【FactoryBot】create_listで複数のインスタンスの配列を作成する【RSpec】

はじめに 先日、RSpecでテストを書いていた際に、テストデータをまとめて作成したいなーと思って調べたので、ご参考になれば。 create_listメソッドとは create_listメソッドとは、ファクトリに定義しているテストデータを、配列としてまとめて取得すること…

RSpecでバリデーションのテストを書こう!【rails】

はじめに 先日、はじめてRSpecでバリデーションのテストを書いたのでアウトプットとして書きます。 ご参考になれば幸いです。 userモデルとtaskモデル userモデルとtaskモデルはこんな感じです。 ※今回はtaskモデルのバリデーションテストのみ書きます。 cla…

RSpecとFactoryBotのインストール【rails】

はじめに railsアプリにrspecとFactoryBotをはじめてインストールしたので参考になれば 導入の手順 1.Gemfileに記述 2.bundle install 3.RSpecのインストール 4.その他設定 1.Gemfileに記述 group :development, :test do gem 'rspec-rails' gem 'factory_bo…

enumとenum_helpの使い方【rails】

はじめに enumとenum_helpの使い方について enumって何?? モデルで数値のデータ型で定義しているカラムを、 文字列型として使えるようにすることができます。 例えば、0は男性、1は女性みたいな感じです。 定義方法 enumはモデルに定義する必要があります…

ナビゲーションメニューの色を随時変更する方法【bootstrap】

はじめに ナビゲーションメニューについて そもそもナビゲーションメニューって何? ナビゲーションメニューとは、サイトやブログの上部やサイドなどに並んでいるリンクのことです。 ※bootstrapの公式サイト↓ たとえば上記の画像だと、自分は「ホーム」のペ…

【エラー】「Error: Undefined method `authenticates_with_sorcery!' for User:Class」の対処法

はじめに 遭遇したエラーについて sorceryを導入しようとしたときに遭遇したエラー 公式のwiki通りにGemfileに'sorcery'と記載して下記コマンドを実行。 $ rails g sorcery:install $ rails db:migrate その際にこんなエラーに遭遇。 Error: Undefined metho…