如何访问嵌套的params

我想得到一些嵌套的参数。 我有一个订单,有许多项目,这些项目都有一个类型。 我想从控制器创建方法获取type_id参数。

@order = Order.new(params[:order]) @order.items.each do |f| f.item_type_id = Item_type.find_by_name(f.item_type_id).id end 

原因是我希望用户能够在视图中创建新的item_types。 当他们这样做时,我使用AJAX调用将它们添加到数据库中。 当他们发布表单时,我在item_type_id参数中获取item_type的名称,我想找到正确的item_type并将id设置为

要从params访问嵌套字段,请执行以下操作:

 params[:order][:items_attributes].values.each do |item| item[:type_id] end if params[:order] and params[:order][:items_attributes] 

如果您已声明正确的关联和accepts_nested_attributes_for则上述解决方案将起作用。

 class Order < ActiveRecord::Base has_many :items accepts_nested_attributes_for :items, :allow_destroy => true end class Item < ActiveRecord::Base belongs_to :order end