【发布时间】:2016-09-14 06:56:11
【问题描述】:
我试图从定义它的模型内部触发一个方法。但是当我尝试启动我的服务器时,我得到了一个“未定义的方法 `completed_mission_names'”。谁能帮我找出我做错了什么?
class MenteeProfile < ActiveRecord::Base
# Update trackable attributes with succeeded missions
MenteeProfile.completed_mission_names
protected
def last_completed_mission_action
end
def self.completed_mission_names
end
end
【问题讨论】:
-
如果你在模型中调用你看到
self.completed_mission_names,如果你在控制器或视图中然后MenteeProfile.completed_mission_names -
将调用移动到类定义的底部。或者更好,在外面。在类定义之后就可以了。在 Rails 初始化文件 (
config/initializers/whatever.rb) 中调用该方法会更好(假设您要执行一次性初始化)。 -
在 Tim mee 回答和线程共享之后,我已将我想调用的方法放入类中,效果更好。谢谢大家的回复。
标签: ruby-on-rails ruby