Метод Fields_for в Ruby on Rails - PullRequest
       0

Метод Fields_for в Ruby on Rails

2 голосов
/ 13 декабря 2010

В чем разница между:

контроллером

@ user = User.new
@order = Order.new

view:

<%= form_for :user do |user| %>
    ...
    ...
    <%= fields_for :order do |order| %>
    ...
    ...
    <% end %>
<% end %>

Я могу извлечь значения в объекте params, например: params [: user] и params [: order]

Но я мог бы также написать:

<%= form_for :user do |user| %>
    ...
    ...
    <%= user.fields_for :order do |order| %>
    ...
    ...
    <% end %>
<% end %>

и я мог бы извлечь значения в объекте params, как этот params [: user] [: order].

Равно ли, как я извлекаю значения из?

1 Ответ

2 голосов
/ 13 декабря 2010

Обычно вы используете вложенную версию fields_for, если бы вы использовали эту строку в вашей User модели:

has_many :orders
accepts_nested_attributes_for :orders

Определив это, вы сможете создать нового пользователяНовая запись заказа * с * одновременно с использованием этого в действии create вашего UsersController:

@user = User.new(params[:user])

Поскольку вы используете accepts_nested_attributes_for сейчасатрибуты заказа будут переданы как params[:user][:orders_attributes].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...