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

【Rails】検索機能(ransack)

はじめに ransackの実装の流れをメモしておきます。 gemのインストール Gemfile gem 'ransack' $ bundle install Controller def index @q = Board.ransack(params[:q]) @boards = @q.result(distinct: true).includes(:user).order(created_at: :desc).page…

【Rails】ページネーション(kaminari)

はじめに ページネーションを実現させるgem(kaminari)の実装方法について書いていきます。 gemのインストール まず、今回使用するgem kaminariをインストールしましょう。 Gemfile gem 'kaminari' gemのインストール bundle install 基本的な使い方 コントロ…

【Rails】簡単なajax処理 (remote true)

はじめに 前回の「【Rails】ブックマーク機能の実装」の発展で、これをajax処理で実現していきます。 ajaxの実装 Railsにおいてajax通信を実装する場合、主に二つの方法があります。 remote: trueを指定する方法 JSファイルに任意のタイミングでajax処理を発…

【Rails】ブックマーク機能の実装

はじめに 今回、Railsで初めてブックマーク機能を実装したので、ブログにまとめていきます。 今回したいこと 掲示板の⭐️マークをクリックすると、 ⭐️マークの色が変わって、ブックマーク登録されるという機能を実装していきます。 ER図 Bookmarkモデルを中間…

【Rails】form_withについて(ネスト)

はじめに ルーティングがネストしている時の、form-withの書き方を備忘録として残しておきます。 ルーティング(ネスト) resources :boards do resources :comments end createアクション ネストしたモデルのコメントをcreateするとき 、 /boards/:board_id…

【Rails】Railsの基準時刻(タイムゾーン)について

はじめに 日本とアメリカに時差があるように、国や地域ごとで基準時刻というものが違います。日本で使われている時間は「日本標準時(JST)」と呼ばれています。Railsでは、デフォルトで協定世界時(UTC)」の時間で設定されているので、日本で使用するアプリの…

【Rails】seedファイルとfakerについて

はじめに Railsで開発するときに、処理が正しく動いているか確認するためにダミーのデータをデータベースに入れることが多くあります。そのようなデータを用意する仕組みとしてRailsではseeds.rbファイルを使用します。 seedファイル seeds.rbの場所はdb/see…

【Rails】N+1問題について

はじめに N+1問題とは、ループ処理などでデータベースからデータを取り出す際に、必要以上にSQLが発行され、動作が悪くなってしまう問題のことです。 例えば 例えば、掲示板の一覧を表示したいとします。 下記の設定でboardモデルから全てのレコードを取得し…