1

我正在尝试在初始化文件中定义一个常量并将其用于模型。

  • config/initializers/constants.rb

    DEFAULT_EVENT_DURATION = 15
    
  • 应用程序/模型/事件.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

难道我做错了什么?

我在谷歌上进行了一些搜索,但我没有找到任何解决方案(除了在模型中定义常量而不是在初始化程序中......这不是我想要做的)。

4

1 回答 1

0

这只是一个范围问题:常量在根范围内,但它在控制器范围内搜索常量。

一个简单的 '::DEFAULT_EVENT_DURATION' 解决了这个问题。

于 2014-05-08T23:54:46.453 回答