local_assigns如何在Rails中工作?

时间:2012-05-30 15:14:59

标签: ruby-on-rails views

我一直在谷歌上搜索这个,找不到合适的路径。我正在使用一个名为local_assigns的方法的Rails应用程序。这似乎是Rails或gem中的一些内容,并不是我的应用程序特有的,但它用于在不同的上下文中呈现部分内容,例如:

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

或者也是这样:

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

这是Rails方法吗?我在哪里可以找到更多关于此的文档?

1 个答案:

答案 0 :(得分:68)

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 %>

请查看此文档,详细了解Passing local variables to sub templates

部分