パーシャルに渡す変数はなるべくローカル変数にした方が良い
form_with model: post
とfrom_with model: @post
の2種類記法で戸惑っていたので、パーシャルに渡す変数について、調べていた。
結論
インスタンス変数か、ローカル変数か、form_withの挙動に特に影響がなさそうだが、 パーシャルにはなるべくローカル変数を渡すのが良いことがわかった。
理由
インスタンス変数を使うと、コントローラとも結びついてしまい、パーシャルの再利用性が低くなる。
例えば、
controller側でインスタンス変数の名前や挙動を変更したとき、partial側も変更しなければならなくなる。
特定のモデルのデータと関連づけられてしまうので、フレキシブルに使うことができない。
参照:
This post is licensed under CC BY 4.0 by the author.