コントローラーには、月の短いバージョンを含む配列があります。
@months = ['apr', 'may', 'jun', 'jul', 'aug', 'sep', 'aug', 'sep', 'oct', 'nov', 'dec', 'jan', 'feb', 'mar']
次に、コントローラーで変数を定義しました。
@apr_direct_income = 25300
@may_direct_income = 22100
と:
@april_partner_income = 1010
@may_partner_income = 2020
ビューでは、これらすべてのフィールドを表示する必要があり、長い道のりでそれを行うことができますが、Haml で次のようなことを行うことで少し乾かしたいと考えていました。
- @months.each do |m|
= "#{m}_direct_by_activation_date"
変数名は正しく出力されますが、文字列として出力されます。それが変数名であることを認識してから、コントローラーから値を取得するようにしたいので、表示する代わりに:
@apr_direct_income
@may_direct_income
以下が表示されます。
25300
22100
毎月約 10 種類の収入を表示する必要があるため、この方法でこれを DRY すると、数百行の反復コードが非常に小さなページに変わります。