2020-11-01から1ヶ月間の記事一覧

carrierwaveを使った画像アップロード

CarrierWaveとは railsアプリに簡単に画像をアップロードできるライブラリ 使い方 Gemfileに以下を記述して、bundle install gem 'carrierwave', '~> 2.0' その後、以下を実行することで、アップローダーファイルが生成される 今回はファイル名をBoard_image…

rails db:migrate:resetとrails db:resetの違い

rails db:migrate:reset databaseを削除してもう一度作成して、db:migrateを実行している rails db:reset databeseを削除して、現在のschema.erbをロードして、dbを作成している つまりdatabaseをdb/migrate/以下のファイルを全て実行しているか、db/schema.…

railsのTimezone設定

タイムゾーンとは 共通の時間を使うエリアのこと、日本だと使われる時間はJST、世界の基準時刻のUTC(協定世界時)と比較して、+9時間の時差があるため、UTC+09:00やUTC+9などで表記される 設定方法 railsのタイムゾーンはconfig/application.rbで設定できる…

N+1問題の対策

N+1問題とは? データベースからデータを取り出す際に、大量のSQLが発行されて、動作が重くなる現象 具体的な内容 ユーザー(users)が掲示板(boards)を投稿できるサービスがあって、掲示板一覧を表示したい場合、コントローラではallメソッドを使い、boardsテ…

Fakerでダミーデータの作成

seeds.rbとは 初期データを生成してくれるファイル、サンプルデータを入れる必要がある場合などに使われる Fakerとは ダミーデータを生成してくれるgem 公式で様々なデータを用意してくれている 使い方 Gemfileに以下を追記してbundle install gem 'faker' …

renderメソッドの用途

指定したビューを呼び出し コントローラから別のコントローラの配下にあるテンプレートを使用する場合 render 'ファイル名' この記述の場合ファイル名の部分にusers/newのように「 / 」が含まれるとこのビューは別のコントローラの配下にあるとrailsが認識し…

1対多のアソシエーション

例えばユーザーは複数の掲示板を所有して、掲示板は1人のユーザーに属するようなモデル間で1対多の関連付けを作成したい場合、 ユーザーのモデルをUser、掲示板のモデルをBoard、カラムはtilteをstring型、body(内容)をtext型をすると、 rails g model Board…

デコレーターの導入

decoratorとは デザインパターンの1つ、Decoratorパターンと言うものが存在し、 これは、既存のクラス(オブジェクト)にラップすることで、機能を付け加えたい場合や、 既存の機能に少しだけ修飾を加えたい場合に使われるパターン Draperとは? railsでモ…

フラッシュメッセージのレイアウト

flashとは ページ遷移したときに簡単なメッセージを一時的に表示させる機能 使い方 flashはハッシュのように記述する flash[:キー名] = "メッセージ" キーにはデフォルトではnoticeとalertが用意されている ここでbootstrapによってsuccess,danger,warning,i…

i18nを使った日本語化

・i18nって? ある言語を他の言語に翻訳してくれる機能 国際化(Internationalization)の略称 ・デフォルトに日本語を設定するまでの手順 ・rails-i18n gemのインストール Gemfileに gem 'rails-i18n', '~> 5.1' # For 5.0.x, 5.1.x and 5.2.x を記述してbund…