14
14

More than 5 years have passed since last update.

RailsによるアジャイルWebアプリケーション開発 第4版 メモ

Posted at

列追加、削除時のマイグレーションの名前

p111より。
以下のようにするとTABLEとした箇所をRailsがテーブル名として認識してくれる。

add_XXX_to_TABLE
remove_XXX_from_TABLE

モデルのfind_by_hogeメソッドについて

p112より。

Active Record は定義されていないメソッドの呼び出しを認識すると、
そのメソッドがfind_byという文字列で始まり列の名前で終わっていると見抜きます。
そして動的にファインダメソッドを作成し、それをクラスに追加します。

マイグレーションのメソッド

p113より。

# db:migarte、db:rollback時によきに計らって処理してくれる
def change
end

# rake db:migrate時に実行される
def up
end

# rake db:rollback時に実行される
def down
end

xxx_path、xxx_urlのどちらを使うべきか?

p120より

リダイレクトの場合はxxx_url、それ以外の場合はxxx_path。
xxx_urlはhttp://~、xxx_pathは/xxxのような値が返される。

部分テンプレート

p127より。

、部分テンプレートをレンダリングするメソッドにはコレクション
(collection)を渡すことができ、そのメソッドはコレクション内の各項目に対して 1 回ずつ自動的
に部分テンプレートを呼び出す、
デフォルトでは、レンダリング対象のオブジェクトと同じディレクトリに配置し、
テーブル名と同じ名前にします。ただし、部分テンプレートと通常テンプレートの名前を区別するため
Rails はファイルの検索時に部分テンプレートの名前の先頭に自動的にアンダースコア( _ )を追加します。
部分テンプレートの内部では、テンプレート名と同じ名前の変数を使って現在のオブジェクトを参照できます。

Ajax

p132からp133より。

リンクを生成するなどの処理で引数の:remoteにtrueを設定。

button_to 'カートに入れる', line_items_path(product_id: product),
remote: true

該当のメソッドにJs形式の応答を追加。

format.js

JavaScript用のテンプレートを追加。
.html.erbが通常のHTMLテンプレートで.js.erbがJavaScript用のテンプレート。
ファイル名はメソッドと同じにする。

create.js.erb
$('#cart').html("<%= render @cart %>")
14
14
15

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14