我尝试创建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
答案 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。