has_and_belongs_to_many关系没有关联两种方式

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

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

这两个目前都没有关联…然后我尝试通过这样做来关联它们:

 user.events << event 

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

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

我如何做到这一点,以便当我将一个与另一个相关联(事件与用户或用户与事件)…它自动关联另一种方式?

两个模型中是否存在has_and_belongs_to_many ? 它听起来不是,而应该是 :

 # 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 

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

 user.events << event event.reload.users 

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

这有帮助吗?