2010-12-12 3 views
2

В чем разница между этим:метод Fields_for в Рубин на рельсы

Контроллер

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

вид:

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

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

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

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

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

Является ли равным, отличается тем, как я извлекаю значения?

ответ

2

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

has_many :orders 
accepts_nested_attributes_for :orders 

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

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

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

+0

Спасибо, мистер! – LuckyLuke

Смежные вопросы