これを行うには2つの方法があります。
最初は使用すること:locals => {....}
で、もう 1 つは使用すること@var_name
です。私はどちらがより良い/好ましいのか疑問に思っていますか? これに対する答えはどこにも見つかりませんでした。
ありがとう
私には経験がありませんが、おそらく を使用してコードを書くことは少なくなります@var_name
が、同じビューを異なるオブジェクトでレンダリングする 2 つのアクションがあるとします。1 つは foo で、もう 1 つは bar であるとします。
def foos
foos = Foo.all
erb :something, locals: {list: foos}
end
def foos
bars = Foo.all
erb :something, locals: {list: bars}
end
@vars の代わりに、中身を正確に表していない同じ var_name を使用する必要があります。のように: それは何のリストですか??
def bars
@list = Bar.all
erb :something
end
def foos
@list = Foo.all
erb :something
end
あるいは、次のような同じ種類のオブジェクトをレンダリングするときにほとんどの場合、ビューを再利用するため、@vars を使用することをお勧めします。
def foos
@foos = Foo.all
erb :something
end
def bar_foos
@foos = Foo.where(bar: true)
erb :something
end
したがって、ほとんどの場合異なるコンテキストで使用されるパーシャルをレンダリングするときに、ローカルを使用したいだけでしょう。@new_bar および既存の @bar をレンダリングするときのフォームのように。ほんの一例です。または、たとえば @current_user または単純な @user