Rails 2 - частичные: что означает @comment = Comment.new? - PullRequest
3 голосов
/ 30 июня 2010

Я работаю над учебником со следующим кодом:

<h3>New Comment</h3>
   <%= render :partial => @comment = Comment.new,
   :locals => { :button_name => "Create" } %>

Я считаю, что 'render: частичный => @comment' работает так же, как 'render: частичный => "комментарий",: объект => @ комментарий'

Где вписывается «= Comment.new»? Это сокращение для: объект?

Алан

Ответы [ 2 ]

6 голосов
/ 30 июня 2010

В терминах Ruby,

@obj = Object.new # returns @obj

Таким образом, вы визуализируете частичный комментарий и создаете новый объект комментария, с которым он может работать одновременно.

3 голосов
/ 30 июня 2010

См. http://apidock.com/rails/ActionView/Partials раздел "Рендеринг объектов с помощью RecordIdentifier":

# <%= render :partial => "accounts/account", :locals => { :account => @buyer } %>
<%= render :partial => @account %>

Хотя это задокументировано, это вряд ли используется.Новое + назначение (как объяснил Аарон) работает, но кажется немного сложным.В учебном пособии вы ожидаете найти более ортодоксальный подход:

  • Создание объектов в контроллерах вне представлений.
  • Использование render :part => 'mypartial',: locals =>{...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...