1

注文と製品、およびorders_productsという結合テーブルがあり、注文にはorder_productsを介して多くの製品があり、ネストされた属性を受け入れます。

保存しようとすると、許可されていないパラメーターと言い続けます: order_product

パラメータ

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 %>

パラメータハッシュ - {"utf8"=>"√","authenticity_token"=>"yBrH91u0OHTSPnCFO/484Ff6CRtyRLSg5AKD1Lc33k4=", "order"=>{"order_number"=>"0121", "order_product"=>{"product"= >"4", "quantity"=>"5"}, "customer_id"=>"3"}, "commit"=>"Create Order"}

許可されていないパラメーター: order_product

4

1 に答える 1