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
这将显式从数据库重新加载数据,而不是使用本地缓存的版本。 如果您曾经访问过该关联,它将不再在数据库中查找,除非您明确询问它。
这有帮助吗?