我有
add_column :foos, :bar_id, :integer
但是我可以做像
这样的事情@foo.bar.name
而不是
Bar.find(@foo.bar_id)
我认为它在创建表时使用t.references完成了......但是如何在创建表后创建它呢?
答案 0 :(得分:2)
请参阅迁移指南here。
create_table :products do |t|
t.references :category
end
这允许您在迁移中指定它,但您还需要使用 belongs_to ,并且模型中的 has_one 或 has_many 属性。如果没有迁移来创建它,您可以真正做到这一点,因为您已经设置了外键ID。只需使用上述属性。
答案 1 :(得分:1)
您必须编辑相应的模型文件并添加例如belongs_to
声明。这正是允许您调用@foo.bar.name
。
答案 2 :(得分:0)
为什么在迁移中需要这样做?为什么不能在迁移中添加bar_id字段,而不是在foo的模型中添加关联?
答案 3 :(得分:0)