我试图在初始化程序文件中定义一个常量并将其用于模型中。
配置/初始化/ constants.rb
DEFAULT_EVENT_DURATION = 15
应用程序/模型/ event.rb
class Event < ActiveRecord::Base
before_validation :set_end_and_allday
[...]
def set_end_and_allday
self.allDay ||= false
self.end_event ||= self.start + DEFAULT_EVENT_DURATION.minute
end
end
但是,当它尝试创建新事件时,它会在日志中显示以下错误:
NameError - uninitialized constant Event::DEFAULT_EVENT_DURATION
我做错了吗?
我在google上进行了一些搜索,但我没有找到任何解决方案(除了在模型中定义常量而不是在初始化程序中...并且这不是我想要的做)。
答案 0 :(得分:0)
这只是一个范围问题:常量位于根范围内,但它是在控制器范围内搜索常量。
一个简单的':: DEFAULT_EVENT_DURATION'解决了这个问题。