0

Rails プロジェクト全体でリストにアクセスできる必要があります。簡単にするために、これは私が入れたリストですenvironment.rb

FOODS = ['CHEESE', 'EGGS', 'ORANGES']

すべてのファイルがこの定数にアクセスできるようにしたいのですが、同時に、特定のファイルだけが特に必要とすることを行うことで、他のすべてのファイルのリストが台無しになるのではないかと心配しています。FOODS.push("TEMPORARY_FOOD")

このリストをグローバルにアクセスできるようにする正しい方法は何ですか? を使用する.freeze必要がありますか、それとも 以外の方法を使用する必要がありますかenvironment.rb

4

2 に答える 2

3

慣例により、ルビ定数は変更されることを意図していません。を使用して.freezeも問題ありませんが、定数が再定義されるのを止めるわけではないことに注意してください。

FOODS = ['ANOTHER', 'ARRAY']

で定義した場合、定数はすでにグローバルにアクセスできるはずですenvironment.rb。一定の初期化を config/initializers のファイルに配置するのに適した場所 - environment.rb で必要でない限り - environment.rb のアップグレードが容易になります (Rails のアップグレードが容易になります)。

于 2012-07-02T22:27:42.340 に答える
0

ビューファイルのみがFOODS配列を必要とする場合は、それをapplication_helperファイルに入れることができます。モデルにも必要な場合は、他の配列とマージできます。

FOOD+["バナナ"]

(これを行うには、さらに100万の方法があります)。

于 2012-07-03T06:28:17.410 に答える