WeBlog

Webに関する情報を中心に発信してるブログ

2021-04-24から1日間の記事一覧

shallow: trueをつける場所によって差はあるのか?

試した内容 結論 shallow: trueって付与する場所で変化するのか疑問に思ったのでちょっと試してみました。 試した内容 今回は下記の内容を試しました。 まずは、resources :boardsに対してshallow: trueをつけています。 resources :boards, shallow: true d…

Ajax通信について

Ajaxとは? 通常の通信 非同期通信 一般的なAjaxのコード Railsにおけるajax通信 Railsでremote: trueを使ったAjax通信 ディレクトリ構成 link_toメソッドにオプションを追加 コントローラーを記述する JSファイルを用意する Ajax通信を見てみる replaceWith…

gem Bulletを使ってN + 1を感知する

Gem

Bulletを使ってみる RailsでN +1問題がよく起こります。 しかし、サーバーのログを1個1個確認して、ここN +1が起きていると目視で確認するのは困難に近いです。 そんな時に役立つgemがBulletです。 https://github.com/flyerhzm/bullet Bulletを使って…

【Rails】RailsでURLに「?キー = 値」を指定する方法

実際にやってみた Railsでよく見みるルーティングとして下記のような7つの基本的なルーティングがあります。 動的なルーティングには:idという部分にオブジェクトのidを埋め込むことができます。 boards GET /boards(.:format) boards#index POST /boards(.…

【Rails】collectionとmemberを使ったルーティングの作成

基本的なルーティング collectionを使ったルーティング memberを使ったルーティング 基本的なルーティング Railsでは index new show create edit update destroy という7つの基本的なアクションが簡単に作成できます。 例えばルーティングで下記のように書…

【Rails】railsで複合uniqueのvalidationをつけてやる

DBの設定で複合ユニークを設定 バリデーションチェックで複合ユニークを設定する 「user_id = 1、board_id = 2」があったら、「user_id = 4、board_id = 2」みたいな、同じboard_idは入れられない scope は複数指定できる 複合ユニークのバリデーションとは…

【Rails】中間テーブルとthrough、sourceオプション

多対多の関連とは? 多対多のリレーションを表現する 多対多のアソシエーションを定義する has_many throuthアソシエーションを使わないで取得する has_manyメソッドのthroughオプションを使ってみる。 has_many through sourceを使ってみる モデルのscopeを…

【Rails】belongs_to オプションを設定した場合対象カラムに対する presence: true は自動で設定される

テーブルの関係 モデル 検証してみる belongs_to オプションを設定した場合対象カラムに対する presence: true は自動で設定されるみたいなので、その検証をしてみる。 テーブルの関係 今回はusersテーブルと、boardsテーブルを作成する ユーザーが掲示板を…

【Rails】validates :user_id, uniqueness: { scope: :board_id }のついて

UserとBookmarkとBoardモデルの関係性 中間モデル テーブル モデルのリレーション validates :user_id, uniqueness: { scope: :board_id }とは? uniquenessとscopeについて試してみる DB側にunique indexを追加する方法 まとめ ブックマーク機能やいいね機…

【Rails】ActionView::MissingTemplateのついて

内容 エラーの原因 対策 内容 以下のようなディレクトリ構成のViewがあるとします。 /views |- /boards |- /index.html.erb |- /_board.html.erb |- /bookmarks |- /_bookmark_area.html.erb |- /_bookmark.html.erb collectionで/boards/_board.html.erbを…

【Rails】バグ修正してみた

Routing Error uninitialized constant BlogController エラー内容 問題点 改善 NoMethodError in Blogs#show undefined method `comments' エラー内容 問題点 改善 TypeError in Blogs#show String can't be coerced into Integer エラー内容 問題点 改善 …

【Rails】renderメソッドについて

引数を使わず、部分テンプレートを呼び出す 引数を部分テンプレートに渡す 配列の要素の個数だけ部分テンプレートを繰り返し描画する 注目するところ 引数を使わず、部分テンプレートを呼び出す tweetsディレクトリの中の_tweet.html.erbファイルを描画する…

【Rails】data-confirmによるアラートの表示

一般的な削除のリンク data-confirmを使ってみる data-confirmの文字列は翻訳を使う 削除アイコンにリンクを付与する 一般的な削除のリンク よく目にする形として削除のリンクでは下記のように書いてあります。 このリンクを押したら、board_path(board)のUR…