最初のRuby on Rails Webアプリケーションを始めたばかりです。さまざまなモデル、ビュー、コントローラーなどがたくさんあります。
アプリ全体に適用される、真にグローバルな定数の定義を固執するのに適した場所を見つけたいと思っています。特に、それらは私のモデルのロジックと私の見解で行われた決定の両方に適用されます。これらの定義を、私のすべてのモデルとすべての私の見解の両方で利用できる場所に置くためのDRYの場所を見つけることができません。
特定の例をとるには、定数が必要ですCOLOURS = ['white', 'blue', 'black', 'red', 'green']
。これは、モデルとビューの両方で、至る所で使用されています。アクセスできるように、1つの場所でどこに定義すればよいですか?
私が試したこと:
- それらが最も関連付けられているmodel.rbファイル内の定数クラス変数(など)
@@COLOURS = [...]
。しかし、私はそれを明確に定義する方法を見つけることができなかったので、私は自分の意見Card.COLOURS
でのような何か不器用なものではなく書くことができますCard.first.COLOURS
。 - モデルのメソッドのようなもの
def colours ['white',...] end
-同じ問題。 - application_helper.rbのメソッド-これは私がこれまで行っていることですが、ヘルパーはモデルではなくビューでのみアクセスできます
- 私はapplication.rbまたはenvironment.rbで何かを試したかもしれないと思いますが、それらは本当に正しく見えません(そしてそれらもどちらも動作しないようです)
モデルとビューの両方からアクセスできるように何かを定義する方法はありませんか?つまり、モデルとビューを分離する必要があることはわかっていますが、確かに一部のドメインでは、同じドメイン固有の知識を参照する必要がある場合がありますか?