我有一种方法可以在我的机器上本地运行,但在 Heroku 中失败了。Heroku 日志说:
NoMethodError(nil:NilClass 的未定义方法“事件”)
我已经将 heroku 控制台用于此方法的等效方法,并且它可以工作,因此有支持它的数据。方法是:
def index
@events = current_user.school.events
end
我正在使用我相信它给了我 current_user 方法的设计。等价的 a = User.first.school.events 产生带有数据的真实实例值。User.first 产生正确的数据。
这是我的模型:
class School < ActiveRecord::Base
#validates_presence_of :name
has_many :events, :dependent => :destroy
has_many :users, :dependent => :destroy
belongs_to :user
belongs_to :event
def self.fetch_for_name(_name)
school = self.new(:name => _name)
end
end
class User < ActiveRecord::Base
belongs_to :school
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :name, :email, :password, :password_confirmation, :remember_me
end
class Event < ActiveRecord::Base
belongs_to :school
end
如果我忽略了一些简单、基本的事情,那会像我一样,但如果我能在 Heroku 控制台中正确地做到这一点,为什么这个方法会中断。另一个不相关的页面在 Heroku 上正常工作。