2013-04-24 4 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

ответ

0

Заменить:

attr_accessible ..., :products 

С:

attr_accessible ..., :products_attributes 
Смежные вопросы