обучения из Rails guide, я не понимаю, как local_assign
работы ниже:Rails local_assign против локальных переменных
Чтобы передать локальную переменную к частичному только в конкретных случаях использовать local_assigns.
index.html.erb
<%= render user.articles %>
show.html.erb
<%= render article, full: true %>
_articles.html.erb
<h2><%= article.title %></h2> <% if local_assigns[:full] %> <%= simple_format article.body %> <% else %> <%= truncate article.body %> <% end %>
Таким образом, можно использовать частичное без необходимости объявлять все локальные переменные.
Как частичное даже отображение визуального действия, когда оно имеет имя _articles
, которое будет отображаться только для действия индекса? Я также не понимаю, почему вы используете, добавьте опцию full: true
, когда вы могли бы использовать только locals: {full:true}
. Какая разница?
Нет никакой практической разницы между 'render: locals: {full: true}' и 'render full: true', они оба назначают локальную переменную с именем' full', последняя - только более новая стенография. – max
Что касается вашего первого вопроса, то имя '_articles' является опечаткой. Частичное имя должно быть '_article'. Я открыл [тянуть запрос, чтобы исправить руководство] (https://github.com/rails/rails/pull/27896) – meagar