无法批量分配受保护的属性HABTM记录

时间:2013-03-03 15:49:30

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.1 ruby-on-rails-3.2

我尝试创建HBTM关联并在创建我的订单时创建记录:

订单控制器:

  def create
    @order = Order.create(params[:order])

    @order.adresses.new(:order_id => params[:id],:adress_id => params[:adress_id])
    if @order.save
      redirect_to orders_path,:notice => "Compra criada com sucesso !"
    else
      redirect_to orders_path,:notice => "Compra nao criada com sucesso cheque os erros e tente novamente !"
    end
  end

在我的订单模型和我的地址模型中:

order.rb
  has_and_belongs_to_many :adresses
adress.rb
  has_and_belongs_to_many :orders

正确,但我创建了一个模型并收到此错误:

Can't mass-assign protected attributes: adress_id, order_id

所以我创建模型adresses_orders.rb whit this:

  attr_accessible :order_id,:adress_id

但错误连续我不理解因为什么

Can't mass-assign protected attributes: adress_id, order_id

2 个答案:

答案 0 :(得分:1)

在adress.rb中添加attr_accessible :order_id,:adress_id不在adresses_orders.rb

无需定义adress_orders.rb,如果可能,请将其删除

答案 1 :(得分:0)

HABTM之间不需要额外的模型(adresses_orders)。只是桌子就足够了。

@order.address.new

应该足够了。协会足够聪明,可以为您填写地址ID和订单ID。