2013-09-30 138 views
1

我有订单和产品,以及一个名为orders_products的连接表,订单有许多产品通过order_products并接受嵌套归因于它。Ruby on Rails未经许可的参数有很多通过

当我试图挽救它口口声声说不允许,paramters:order_product

PARAMS

def order_params 
    params.require(:order).permit(:id, :order_number, :customer_id, {order_products_attributes: [:id, :order, :product, :quantity ]}, {:product_ids => []}) 

end 

订货型号

class Order < ActiveRecord::Base 
    belongs_to :customer 
    has_many :order_products, class_name: "OrderProduct" 
    has_many :products, through: :order_products 
    accepts_nested_attributes_for :order_products, :allow_destroy => true 
end 

订购产品型号

class OrderProduct < ActiveRecord::Base 
    belongs_to :product 
    belongs_to :order 
end 

订单控制器新的动作

def new 
    @order = Order.new 
    @order.order_products.build 
end 

订购单

<%= simple_form_for @order do |f| %> 
<%= f.input :order_number %> 

<%= f.fields_for :order_product do |fa| %> 
    <%= fa.input :product, collection: Product.all %> 
    <%= fa.input :quantity %> 

    <% end %> 

<%= f.association :customer, as: :select %> 

<%= f.submit %> 
<% end %> 

PARAMS散列 - { “UTF8”=> “√”, “authenticity_token”=> “yBrH91u0OHTSPnCFO/484Ff6CRtyRLSg5AKD1Lc33k4 =”,“order”=> {“order_number”=>“0121”,“order_product”=> {“product”=>“4”, “量”=> “5”}, “CUSTOMER_ID”=> “3”}, “提交”=> “创建订单”}

不允许的参数:order_product

回答

1

你在这里失踪s

<%= f.fields_for :order_products do |fa| %> 
+0

好吧我现在加了这个,我得到了不允许的参数:产品 – user2829533

+0

你的参数现在是什么样子? –

+0

也许'产品'需要是一个关联? '<%= fa.association:product,如::select,collection:Product.all%>'。 –