带有外键的表的CRUD

时间:2010-01-08 02:08:38

标签: ruby-on-rails

我在字段b_id中有表A和表B的外键。现在我正在尝试为添加新表A条目进行查看/控制。在表单中,我有一个组合框(通过collection_select)列出表B中的所有元素,这是我打算在A的create方法中获取A的新实例的b_id。

组合框的值设置为所需B实例的id。但是如何在ecreate方法中将该值设置为新的A对象的b_id字段?无论我尝试什么,它总是为NULL,当然,我得到了例外。

2 个答案:

答案 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
相关问题