我在字段b_id中有表A和表B的外键。现在我正在尝试为添加新表A条目进行查看/控制。在表单中,我有一个组合框(通过collection_select)列出表B中的所有元素,这是我打算在A的create方法中获取A的新实例的b_id。
组合框的值设置为所需B实例的id。但是如何在ecreate方法中将该值设置为新的A对象的b_id字段?无论我尝试什么,它总是为NULL,当然,我得到了例外。
答案 0 :(得分:0)
我不确定我是否完全按照您的问题,但听起来您可能希望将ID直接从参数传递给新的A对象的创建方法......就像这样:
a = A.create( :b_id => params[:b_id], ... )
这一切都取决于你在视图中命名组合框的内容。如果您可以粘贴视图的片段,那么这将有助于
根据评论更新。
查看collection_select
的{{3}},看起来您没有将正确的数据传递给collection_select
答案 1 :(得分:0)
首先,您是否宣布B有许多As,并且A在您的模型中属于B? (编辑:最初有这些逆转)
class B < ActiveRecord::Base
has_many :as
end
class A < ActiveRecord::Base
belongs_to :b
end