Масса не может назначить атрибуты с вложенной формой

У меня есть 2 формы, форма заказов и форма продуктов. Я хотел бы, чтобы форма продуктов находилась под формой заказов. Я получаю эту ошибку: Невозможно массово назначить защищенные атрибуты: products_attributes.

Вот моя модель заказов

Класс Order validates:order_type,: due_date,: print_color,: title,:sence => true
validates: title,: uniqueness => true
has_many: продукты
accepts_nested_attributes_for:products,:allow_destroy => true
конец

модель продуктов

Класс Product attr_accessible: количество
has_one: заказ
конец

Контролер заказов:

>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

любая помощь будет оценена! заранее спасибо.

1 ответ

Решение

Заменить:

 attr_accessible ..., :products

С:

 attr_accessible ..., :products_attributes
Другие вопросы по тегам