niki12260714の日記

フリーランスのITエンジニアの呟き。

2018-06-01から1ヶ月間の記事一覧

独自定義のモデルを元にしたformのvalidatesを日本語化

変にハマったので、メモ。内容はここの続きです。あと、大前提として、「i18n」を入れて、日本語化の準備が出来ていることが必須です。 niki12260714.hatenablog.com この方法で戻ってくるエラーメッセージを見ると「col aは必須です」のように、モデルに定…

Active Modelを定義し、form_forを使用、validatesでエラー処理までの流れ

画面の入力項目が一つのテーブルだけではないというのはよくあるパターン。そうすると、form_forが使えないので、form_tagを使うことになります。が、そうするとvalidatesの処理とかセオリー通りにいかないし、form_forの方がBootstrapでごにょごにょするの…

railsで二つのセレクトボックスを連動させる

都道府県のセレクトボックス選ぶと、隣にある市町村のセレクトボックスの中身が変わる。そういう奴をrailsで作る方法です。ネットに沢山情報がありますが、自分が分かりやすかった方法がこちら。 【プログラムの動き】1.セレクトボックスにonchangeイベント…

AWS Cloud9でpumaを再起動

参考にしたのはこちら。 qiita.com ターミナルで「ps ax」を打つと、これが出てきました。 AWSの場合、「puma x.xx.xx~」を殺せばよい模様。「kill -9 6109」でpumaが終了するので、「rails s -b $IP -p $PORT」を打てば再起動する。 ※「server.pid」ファイ…

【調査中】railsでleft_joinsするモデルに対して条件を追加する方法

こちらと同じことをしたくて調べています。 teratail.com 自分の場合、まさに外部結合する方のテーブルに条件を追加するSQLを発行したいのです。 SELECT A.id, B.idFROM ALEFT OUTER JOIN B ON A.id = B.a_id AND B.col = (動的な値)WHERE A.col = (なんかの…

railsで親子モデルのそれぞれに条件設定してn+1問題を解決する方法

親子のモデルで結合する時、joinsかincludesを使うわけですが、取得結果表示で、「子供のループで回したい」となると、joinsだとn+1問題が発生します。なので、includesをしたいのですが、includesは「親に対してSQL実行」→「親の結果をもとに子のSQLを実行…

railsで親子孫ひ孫までをincludesする

自分メモ。沢山ある関連モデルをincludesする場合。 親.where(条件文).all.includes(子: [孫: :ひ孫])

子モデルで条件を設定し、includesする場合

今でも鮮明に覚えているんですが、初めて先輩に、業務で組んだコードをレビューしてもらった時。「なんでSelectのループの中で、またSQL発行しているの?」はい、効率とかリソースとか考えられない超初心者でした。それ以降、「SQL発行は極力1回で行う、ルー…