Ruby on rails ActiveRecord——用户有许多事件,并且作为成员属于这些事件
我想建立一种关系,在这种关系中,用户可以启动活动,然后也可以作为成员加入他们。我认为这使用了多对多关系,但它也有一个简单的从事件到用户的归属关系Ruby on rails ActiveRecord——用户有许多事件,并且作为成员属于这些事件,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我想建立一种关系,在这种关系中,用户可以启动活动,然后也可以作为成员加入他们。我认为这使用了多对多关系,但它也有一个简单的从事件到用户的归属关系 class User < ActiveRecord::Base has_secure_password has_many :events # => Owning has_many :events, through: :members # => Joining end class Event < ActiveRec
class User < ActiveRecord::Base
has_secure_password
has_many :events # => Owning
has_many :events, through: :members # => Joining
end
class Event < ActiveRecord::Base
belongs_to :user # => event owner
has_many :users, through: :members # => joining users
end
class Member < ActiveRecord::Base
belongs_to :user
belongs_to :event
end
已更新以修复我的错误
class User < ActiveRecord::Base
has_secure_password
has_many :members
has_many :events, through: :members
end
class Event < ActiveRecord::Base
#belongs_to :user # => event owner
has_many :members
has_many :users, through: :members
class Member < ActiveRecord::Base
belongs_to :user
belongs_to :event
end
class用户事件所有者
有很多:成员
拥有多个:用户,通过::成员
类成员
如果这是给你一个堆栈级别太深的错误,我猜问题在别处。您的日志可能包含更多信息。是否有错误?如果是这样的话,您能显示您得到的实际错误吗?
NoMethodError:#
的未定义方法“成员”看起来像是您的许多方法都是反向的<代码>归属于:用户#=>事件所有者有_多个:用户有_多个:成员,通过::users。与用户模型中的事件相同。好吧,是的,我想这可能就是问题所在。在这种情况下,尽管我得到了这个错误:ActiveRecord::HasManyThroughAssociationNotFoundError:找不到关联:模型事件中的用户(编辑:我需要将has\u许多:用户添加到事件模型中)必须添加它。我在评论中有它(尽管我评论中的格式很糟糕)有很多:用户
感谢您的帮助,但这给了我堆栈级别太深的错误。。。我将不得不更多地研究这些关系在幕后是如何运作的,但我感到相当沮丧。也许我错过了一步?
class User < ActiveRecord::Base
has_secure_password
has_many :members
has_many :events, through: :members
end
class Event < ActiveRecord::Base
#belongs_to :user # => event owner
has_many :members
has_many :users, through: :members
class Member < ActiveRecord::Base
belongs_to :user
belongs_to :event
end