web-dev-qa-db-ja.com

local_assignsはRailsでどのように機能しますか?

私はこれについてあちこち探し回っていましたが、正しい道を見つけることができません。 local_assignsと呼ばれるメソッドを使用しているRailsアプリで作業しています。これは、Railsまたはgemで、私のアプリ。ただし、次のような異なるコンテキストでパーシャルをレンダリングするために使用されます。

<% if local_assigns[:custom_name] %>
  <li><%= custom_name %></li>
<% else %>

またはこれも:

<%= render "discussions/complementary/#{local_assigns[:action] || params[:action]}" %>

これはRailsメソッドですか?これに関するドキュメントはどこにありますか?

48
Lee McAlilly

local_assignsはRailsビューヘルパーメソッドで、このパーシャルにローカル変数が提供されているかどうかを確認できます。

ここで、いくつかの値でパーシャルをレンダリングします。headlinepersonは事前定義された値でアクセス可能になります。

<%= render "shared/header", { :headline => "Welcome", :person => person } %>

shared/header 見る:

Headline: <%= headline %>
First name: <%= person.first_name %>

これらの変数が渡されたかどうかを確認する方法は次のとおりです。

<% if local_assigns.has_key? :headline %>
  Headline: <%= headline %>
<% end %>

ローカル変数をサブテンプレートに渡す セクションの詳細については、このドキュメントを確認してください。

71
Chamnap