基本上,现在我有一个位置和一个用户,并且关系“跟随”。这两者都是 has_and_belongs_to_many 关系。我已经在数据库中创建了用户和位置,但是当用户决定关注某个位置时,我想将两者连接起来。我该怎么做呢?
我曾想过使用 LocationUser.new(..),其中 LocationUser 是位置和用户表或 Location.create(...) 或其他东西的连接表,但我不觉得其中任何一个在做什么我想要做。
提前非常感谢!
基本上,现在我有一个位置和一个用户,并且关系“跟随”。这两者都是 has_and_belongs_to_many 关系。我已经在数据库中创建了用户和位置,但是当用户决定关注某个位置时,我想将两者连接起来。我该怎么做呢?
我曾想过使用 LocationUser.new(..),其中 LocationUser 是位置和用户表或 Location.create(...) 或其他东西的连接表,但我不觉得其中任何一个在做什么我想要做。
提前非常感谢!
您可以使用范围加法(如果您不使用连接模型,则为真正的 habtm):
current_user.locations << @location
或范围创建(如果您有连接模型):
current_user.location_users.create(:location_id => @location)
连接表不应该有模型,也不能有外键。id: false
在 create_table 迁移中设置。
然后,User.locations << Location.new
或类似的。