シナトラのローカルとは正確には何ですか?インスタンス変数とは対照的に、テンプレートでそれらを使用することに違いはありますか? 地元の人の意味は次のとおりです。
erb :template, :locals => {:variable => 'value'}
編集:
実装に関して、インスタンス変数とローカル変数の違いは何ですか? また、どちらか一方を使用する利点はありますか?
シナトラのイントロより:
テンプレートは、ルート ハンドラーと同じコンテキスト内で評価されます。ルート ハンドラーで設定されたインスタンス変数は、テンプレートから直接アクセスできます。
get '/:id' do
@foo = Foo.find(params[:id])
haml '%h1= @foo.name'
end
または、ローカル変数の明示的なハッシュを指定します。
get '/:id' do
foo = Foo.find(params[:id])
haml '%h1= bar.name', :locals => { :bar => foo }
end
これは通常、テンプレートを他のテンプレート内からパーシャルとしてレンダリングするときに使用されます。
また、一部のテンプレートには次のものがあります (この場合は Radius の場合):
Ruby のメソッドを Radius テンプレートから直接呼び出すことはできないため、ほとんどの場合、これに locals を渡します。