has_and_belongs_to_many关系没有关联两种方式

时间:2011-06-01 06:30:16

标签: ruby-on-rails activerecord

我使用has_and_belongs_to_many建立关系以关联用户和事件。然后我试试这个:

user = User.find(1)
event = Event.find(1

这两个目前都没有关联...然后我尝试通过执行以下操作来关联它们:

user.events << event

此操作有效......但是,它们之间没有正确关联:

user.events为此用户正确列出事件...但event.users没有与之关联的用户。

如何制作它以便当我将一个与另一个相关联时(事件与用户或用户有事件)...它会自动关联另一种方式?

2 个答案:

答案 0 :(得分:1)

两个模型中都存在has_and_belongs_to_many吗?它听起来不是,而should be

# models/user.rb
class User < ActiveRecord::Base
  has_and_belongs_to_many :events
end

# models/event.rb
class Event < ActiveRecord::Base
  has_and_belongs_to_many :users
end

答案 1 :(得分:0)

假设您的链接设置正确,您可以测试一下:

user.events << event
event.reload.users

这将显式重新加载数据库中的数据,而不是使用本地缓存的版本。如果您曾经访问过该关联,它将不再在数据库中查找,除非您明确询问它。

这有帮助吗?