1

初期化ファイルで定数を定義し、それをモデルで使用しようとしています。

  • config/initializers/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でいくつか検索しましたが、解決策が見つかりませんでした(初期化子ではなくモデルに定数を定義することを除いて...そしてそれは私がやりたいことではありません)。

4

1 に答える 1

0

これは単にスコープの問題でした。定数はルート スコープにありましたが、コントローラ スコープで定数を検索していました。

シンプルな「::DEFAULT_EVENT_DURATION」で問題が解決しました。

于 2014-05-08T23:54:46.453 に答える