如何访问嵌套参数 [英] How to access nested params

查看:56
本文介绍了如何访问嵌套参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取一些嵌套的参数.我有一个包含许多项目的订单,这些项目每个都有一个类型.我想从控制器的create方法中获取type_id参数.

I would like to get some nested params. I have an Order that has many Items and these Items each have a Type. i would like to get the type_id parameter from the controllers create method.

@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设置为该

The reason is that i want the user to be able to create new item_types in the view. When they do that i use an AJAX call add them to the db. When they post the form i get names of the item_type in the item_type_id parameter and i want to find the correct item_type and set the id to that

推荐答案

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

To access the nested fields from params do the following:

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

仅当您声明正确的关联和accepts_nested_attributes_for时,以上解决方案才有效.

Above solution will work ONLY if you have declared the correct associations and 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

这篇关于如何访问嵌套参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆