How does local_assigns work in Rails?

Ruby on-RailsViews

Ruby on-Rails Problem Overview


I've been googling around about this and can't find the right path. I'm working on a Rails app that is using a method called local_assigns. This appears to be something in Rails or a gem, and not specific to my app, but it's used for rendering a partial in different contexts, such as this:

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

or also this:

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

Is this is Rails method? Where can I find more documentation about this?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

local_assigns is a Rails view helper method that you can check whether this partial has been provided with local variables or not.

Here you render a partial with some values, the headline and person will become accessible with predefined value.

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

In shared/header view:

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

Here is how you check these variables has passed in or not:

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

Check this document for more detail on the section Passing local variables to sub templates.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLee McAlillyView Question on Stackoverflow
Solution 1 - Ruby on-RailsChamnapView Answer on Stackoverflow