视图-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方法吗? 在哪里可以找到关于此的更多文档?

Lee McAlilly asked 2020-02-20T08:20:52Z
1个解决方案
71 votes

shared/header是一种Rails视图帮助器方法,您可以检查此部分是否已提供局部变量。

在这里,您使用一些值渲染局部,可以使用预定义的值访问shared/headerperson

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

有关将局部变量传递到子模板部分的详细信息,请查阅此文档。

Chamnap answered 2020-02-20T08:21:24Z
translate from https://stackoverflow.com:/questions/10819189/how-does-local-assigns-work-in-rails