Как работают local_assigns в Rails?

Я об этом заглядывал и не могу найти правильный путь. Я работаю над Rails-приложением, которое использует метод local_assigns. Это похоже на что-то в Rails или драгоценном камне, а не на мое приложение, но оно используется для частичного отображения в разных контекстах, например:

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

а также это:

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

Это метод Rails? Где я могу найти дополнительную документацию об этом?

Ответ 1

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

Проверьте этот документ более подробно на разделе Передача локальных переменных в подшаблоны.