Rails belongs_to association(with:class_name)返回nil

我对Rails开发相对较新,而且我有一个小的关联问题。 我想命名一个与它所链接的模型不同的关联。

我有以下两种型号:

class User < ActiveRecord::Base has_many :events end class Event  "User" # So we can call event.admin to retrieve the User who owns this Event end 

我建立一个用户如下:

 event = event.create! :title => "New Event" user = User.create! :username => "thinkswan" user.events << event user.save 

当我跳进控制台时,我收到以下内容:

 irb> user = User.find(1) irb> user.events => [#] irb> event = Event.find(1) irb> event.user_id => 1 irb> event.admin => nil 

任何人都可以解释为什么admin协会没有返回它指向的用户? 谢谢!

您需要同时指定:class_name:foreign_key ,例如:

 belongs_to :admin, :class_name => "User", :foreign_key => "user_id"