如何在rails中创建关系?

时间:2012-09-30 07:59:58

标签: ruby-on-rails

基本上,现在我有一个位置和一个用户,关系“跟随”。这两者都是has_and_belongs_to_many关系。我已经在数据库中创建了用户和位置,但是当用户决定关注某个位置时,我想要连接这两个用户。我该怎么做呢?

我想过使用LocationUser.new(..),其中LocationUser是一个位置&的连接表。用户表或Location.create(...)或其他东西,但我不觉得其中任何一个正在做我想做的事情。

提前非常感谢!

2 个答案:

答案 0 :(得分:0)

连接表不应具有模型,也不应具有外键。在create_table迁移中设置id: false

然后,User.locations << Location.new或类似的。

答案 1 :(得分:0)

您可以使用范围添加(如果您不使用连接模型,真正的habtm):

current_user.locations << @location

或范围创建(如果您有连接模型):

current_user.location_users.create(:location_id => @location)