web-dev-qa-db-fra.com

Comment fonctionne local_assigns dans Rails?

J'ai fait des recherches sur ce sujet et je ne trouve pas le bon chemin. Je travaille sur une application Rails qui utilise une méthode appelée local_assigns. Cela semble être quelque chose dans Rails ou une gemme, et non spécifique à mon mais elle est utilisée pour rendre un partiel dans différents contextes, comme celui-ci:

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

ou encore ceci:

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

S'agit-il de la méthode Rails? Où puis-je trouver plus de documentation à ce sujet?

48
Lee McAlilly

local_assigns est une méthode d'aide Rails view helper qui vous permet de vérifier si ce partiel a été fourni avec des variables locales ou non.

Ici, vous rendez un partiel avec quelques valeurs, les headline et person deviendront accessibles avec une valeur prédéfinie.

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

Dans shared/header vue:

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

Voici comment vérifier que ces variables sont passées ou non:

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

Consultez ce document pour plus de détails sur la section Passage de variables locales aux sous-modèles .

71
Chamnap