2013-04-24 65 views
0

我有2個表單,一個訂單表單和一個產品表單。我希望產品表格可以在訂單表格下。我收到此錯誤:無法批量分配受保護的屬性:products_attributes。不能批量分配嵌套形式的屬性

這裏是我的訂單模型

class Order < ActiveRecord::Base attr_accessible :comments, :due_date, :order_type, :print_color, :print_location, :title, :products
validates :order_type, :due_date, :print_color, :title, :presence => true
validates :title, :uniqueness => true
has_many :products
accepts_nested_attributes_for :products, :allow_destroy => true
end

產品型號

class Product < ActiveRecord::Base
attr_accessible :quantity
has_one :order
end

訂單控制器:

>class OrdersController < ApplicationController 
    # GET /orders 
    # GET /orders.json 
    def index 
    @orders = Order.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @orders } 
    end 
    end 

    # GET /orders/1 
    # GET /orders/1.json 
    def show 
    @order = Order.find(params[:id]) 
    @products = @order.products.find(:all) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @order } 
    end 
    end 

    # GET /orders/new 
    # GET /orders/new.json 
    def new 
    @order = Order.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @order } 
    end 
    end 

    # GET /orders/1/edit 
    def edit 
    @order = Order.find(params[:id]) 
    end 

    # POST /orders 
    # POST /orders.json 
    def create 
    @order = Order.new(params[:order]) 
    respond_to do |format| 
     if @order.save 
     format.html { redirect_to @order, notice: 'Order was successfully created.' } 
     format.json { render json: @order, status: :created, location: @order } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @order.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /orders/1 
    # PUT /orders/1.json 
    def update 
    @order = Order.find(params[:id]) 

    respond_to do |format| 
     if @order.update_attributes(params[:order]) 
     format.html { redirect_to @order, notice: 'Order was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @order.errors, status: :unprocessable_entity } 
     end 
    end 
    end 
    # DELETE /orders/1 
    # DELETE /orders/1.json 
    def destroy 
    @order = Order.find(params[:id]) 
    @order.destroy 

    respond_to do |format| 
     format.html { redirect_to orders_url } 
     format.json { head :no_content } 
    end 
    end 
end 

任何幫助,將不勝感激!提前致謝。

+0

請不要忘記接受一個答案 – apneadiving 2013-04-24 13:27:10

回答

0

替換:

attr_accessible ..., :products 

有了:

attr_accessible ..., :products_attributes 
相關問題