4

Railsアプリを持っていますが、定数を保存するのに最適な場所を考えていますか?

例えば:

HELLO_EVERYONE = "hiz"

次に、いくつかのコントローラーとビューで:

arr_used = [HELLO_EVERYONE]
4

1 に答える 1

5

それはあなたがそれらにアクセスする必要がある場所に依存します。

アプリケーション全体でそれらを使用する必要がある場合は、それらを入れることができますenvironment.rb

# environment.rb
#
# other global config info
HELLO_EVERYONE = "hiz"

特定のクラス内でのみそれらにアクセスする必要がある場合は、そのモデルでそれらを定義できます。

class Test < ActiveRecord::Base
  HELLO_EVERYONE = "hiz"
end

編集

2番目のケース(定数がクラスで定義されている場合Test)は、クラスの外部からもアクセスできます。Testこれは、として参照する必要があるだけTest::HELLO_EVERYONEです。

これは、ビューで使用する可能性のあるそのオブジェクトのドメインに関連するアイテムのリスト(米国の州のリストなど)がある場合に役立つことがあります(例select_tag :address, :state, options_for_select(Address::STATES))。クラスの内部構造を公開する代わりに、これをクラスメソッド内にラップすることを検討するかもしれませんが。

class Address< ActiveRecord::Base
  STATES = ["AL", "AK", "AZ", "AR", ...]

  def self.states
    STATES
  end
end
于 2012-05-15T19:01:06.017 に答える