67

我一直在谷歌上搜索这个,找不到正确的路径。我正在开发一个使用名为 local_assigns 的方法的 Rails 应用程序。这似乎是 Rails 或 gem 中的东西,而不是特定于我的应用程序,但它用于在不同的上下文中呈现部分,例如:

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

或者这个:

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

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

4

1 回答 1

90

local_assigns是一个 Rails 视图辅助方法,您可以检查此部分是否已提供局部变量。

在这里,您使用一些值渲染部分,headline并且person将可以使用预定义的值访问。

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

查看此文档以获取有关将局部变量传递给子模板部分的更多详细信息。

于 2012-05-30T15:30:42.003 回答