私のRailsアプリケーションは現在、collection_selectを使用して、ドロップダウンなどのルックアップ値を選択します。これには、次の2つの利点があります。
- 値は一貫しています
- 選択した値のIDは、テキスト値ではなくデータベースに保存されます
例:edit.html.erb
<div class="field">
<%= f.label :course_type %><br />
<%= f.collection_select :course_type, Lookup.find(:all,:conditions => ["model_name = 'course' and field_name = 'course_type'"]), :id, :lookup_text, include_blank: false,:prompt => "Course Type" %>
</div>
course_controller.rb
private
def get_lookups
@course = Course.find(params[:id])
@course_type = Lookup.find(@course.course_type).lookup_text
show.html.erb
<b>Course type:</b>
<%= @course_type %>
私のアプリケーションは多言語になり、Railsはロケールファイルを使用してこれを処理します。
問題は次のとおりです。モデル/テーブルではなくymlファイルからルックアップ値を入力することは可能(そして賢明)であり、これを複数の言語を処理するように簡単に拡張できますか?上記のコードをymlベースのコードに置き換えるにはどうすればよいですか?