0

我有 2 个表格,一个订单表格和一个产品表格。我希望产品表格位于订单表格下。我收到此错误:无法批量分配受保护的属性:products_attributes。

这是我的订单模型

类 Order < ActiveRecord::Base attr_accessible :comments, :due_date, :order_type, :print_color, :print_location, :title, :products
验证 :order_type, :due_date, :print_color, :title, :presence => true
验证 :title, :uniqueness => true
has_many :products
accept_nested_attributes_for :products, :allow_destroy => true
end

产品型号

类 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

任何帮助,将不胜感激!提前致谢。

4

1 回答 1

0

代替:

 attr_accessible ..., :products

和:

 attr_accessible ..., :products_attributes
于 2013-04-24T12:56:21.210 回答