我的Rails應用程序目前使用collection_select來選擇下拉菜單等,這有兩個好處查找值:可以使用collection_select來對付yaml文件嗎?
- 的值是一致的
- 選定值的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的代碼替換?
謝謝你的選擇。我會考慮Traco。看來options_for_select會返回一個文本值,然後寫入數據庫字段。來自3NF數據庫的背景,我可以看到一些問題 - 主要是存儲過多的數據。我會接受你的回答:謝謝。 – ardochhigh
這太複雜了,實際上可以使用collection_select和.yml轉換(不帶數據庫)。 – TomDogg
感謝.invert – sandre89