【发布时间】:2016-02-18 13:24:58
【问题描述】:
我正在创建一个 rails 应用程序来学习 has_many :through associations... 我知道我没有遵循 rails 约定,但那是因为我想了解 Active Record 必须提供的所有不同选项。
我的问题是,我认为我已经创建了关系,但我不知道如何建立邀请并查询它们以获取参加者和参加的活动。我必须先创建邀请吗?如果是这样,我如何将它与事件相关联?那么,如何才能让很多用户参与到活动中呢?这些问题对你们中的一些人来说可能很明显,但我很难理解它。有人会好心给我一个基本的运行吗?我是否正确设置了我的代码以获得我想要的结果?这是我到目前为止的设置:
class Invite < ActiveRecord::Base
belongs_to :attending_guest, :class_name => "User"
belongs_to :attending_event, :class_name => "Event"
end
class User < ActiveRecord::Base
has_many :created_events, :foreign_key => "creator_id", :class_name => "Event"
has_many :invites, :foreign_key => :attending_guest_id
has_many :attended_events, through: :invites, source: :attending_event
end
class Event < ActiveRecord::Base
belongs_to :creator, :class_name => "User"
has_many :invites, :foreign_key => :attending_event_id
has_many :attendees, :through => :invites, :source => :attending_guest
end
基本上,一个事件有一个创建者,我认为我已经正确地完成了这部分。接下来,我希望能够获得参加活动的用户列表。另外,我希望能够看到用户将要参加的活动。但是我什至如何建立一个邀请并让一个事件与一群用户相关联,rails 是如何处理这个问题的?如果有人可以请解释我如何去做这些事情并给我一些澄清/提示,我将不胜感激。谢谢你!
【问题讨论】:
标签: ruby-on-rails ruby activerecord associations