Ruby on rails 什么';我的Rails 3多对多关联有什么问题?

Ruby on rails 什么';我的Rails 3多对多关联有什么问题?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我不知道我在这里做错了什么。我似乎无法获得与“has_many:creators”行相关的事件类的正确性…我创建了一个rspec测试来验证事件实例化是否会响应“creators”,但我无法让它通过…任何想法 class Event < ActiveRecord::Base has_many :event_invitations has_many :creators, :through => :event_invitations, :s

我不知道我在这里做错了什么。我似乎无法获得与“has_many:creators”行相关的事件类的正确性…我创建了一个rspec测试来验证事件实例化是否会响应“creators”,但我无法让它通过…任何想法

class Event < ActiveRecord::Base
has_many    :event_invitations
has_many    :creators,   :through => :event_invitations,
                 :source => :creator,
                 :class_name => "User"

class EventInvitation < ActiveRecord::Base
belongs_to  :user
belongs_to  :event

class User < ActiveRecord::Base

  has_many  :event_invitations,   :foreign_key => :creator_id
  has_many  :created_events,      :through => :event_invitations,
                                  :source => :event
class事件:活动邀请,
:source=>:创建者,
:class_name=>“用户”
类EventInvitation:创建者id
已经创建了很多活动,:通过=>:活动邀请,
:source=>:事件

事件邀请属于“用户”,但您正在存储“创建者id”。您需要存储“用户id”,或调用关联“创建者”

belongs_to :creator, :class_name => 'User'
在您的事件模型中,您可以使用:

has_many :creators, :through => :event_invitations

事件
类不应响应
创建者
创建者
是一个实例方法,只有
事件
实例才会响应它,例如
事件。首先,创建者
。很抱歉,你完全正确。我无法让任何事件对象响应“创建者”(即\@fun=Event.new…@fun.creators正在抛出这个exeption)谢谢!!你搞定了它,并在这个过程中教会了我一些关于Rails和ActiveRecord的知识。了解是成功的一半。