Railsアプリを持っていますが、定数を保存するのに最適な場所を考えていますか?
例えば:
HELLO_EVERYONE = "hiz"
次に、いくつかのコントローラーとビューで:
arr_used = [HELLO_EVERYONE]
Railsアプリを持っていますが、定数を保存するのに最適な場所を考えていますか?
例えば:
HELLO_EVERYONE = "hiz"
次に、いくつかのコントローラーとビューで:
arr_used = [HELLO_EVERYONE]
それはあなたがそれらにアクセスする必要がある場所に依存します。
アプリケーション全体でそれらを使用する必要がある場合は、それらを入れることができます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