belongs_to和has_many属于同一个模型

den*_*iss 13 ruby-on-rails associations ruby-on-rails-3

我想知道是否有办法用rails做到这一点.基本上我有一个用户模型和一个事件模型.事件由用户创建,我希望在事件模型中具有指示谁创建事件的外键(user_id).此外,事件可以有许多用户参与其中,因此事件模型变得类似

belongs_to :user
has_many :users, :through => :guests #suppose i have the guest model 
Run Code Online (Sandbox Code Playgroud)

而用户模型看起来像

has_many :events, :through => :guests
Run Code Online (Sandbox Code Playgroud)

我还没有尝试过这个协会,但我希望能说

e = Event.find(1)
e.creator #returns the user who created this event
Run Code Online (Sandbox Code Playgroud)

代替

e.user
Run Code Online (Sandbox Code Playgroud)

有没有办法让我这样做?

Jac*_*kin 14

只需将一些选项传递给belongs_to:

belongs_to :creator, :class_name => "User", :foreign_key => "user_id"
Run Code Online (Sandbox Code Playgroud)

这指定该creator方法将是一个User引用该user_id字段的对象.