Post

パーシャルに渡す変数はなるべくローカル変数にした方が良い

form_with model: postfrom_with model: @postの2種類記法で戸惑っていたので、パーシャルに渡す変数について、調べていた。

結論

インスタンス変数か、ローカル変数か、form_withの挙動に特に影響がなさそうだが、 パーシャルにはなるべくローカル変数を渡すのが良いことがわかった。

理由

インスタンス変数を使うと、コントローラとも結びついてしまい、パーシャルの再利用性が低くなる。

例えば、

controller側でインスタンス変数の名前や挙動を変更したとき、partial側も変更しなければならなくなる。

特定のモデルのデータと関連づけられてしまうので、フレキシブルに使うことができない。


参照:

partialではインスタンス変数を参照しない方がいい

【パーシャル】インスタンス変数の直接参照ではなく、localsで値を渡す

form_with model:について

This post is licensed under CC BY 4.0 by the author.