我在Rails應用程序中使用Simple Form來生成表單。通過rails中的simple_form選擇框 - 保存id,而不是標題
模式:
create_table "product_materials", force: :cascade do |t|
t.integer "product_id"
t.integer "material_id"
t.integer "level", default: 0
t.integer "value", default: 0
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
型號:
class ProductMaterial < ActiveRecord::Base
belongs_to :product
belongs_to :material
enum level: [:joinery, :grinding, :painting, :assembly]
end
查看:
= simple_form_for [:admin, @product_material], remote: true do |f|
=> f.hidden_field :product_id, value: @product.id
=> f.input :level, collection: [t('product.joinery'), t('product.grinding'), t('product.painting'), t('product.assembly')], label: false
=> f.association :material
=> f.submit t('form.save')
現在是一個問題: 我怎麼能在select_box顯示名稱的一些集合(使用I18n),但保存一些選定的項目(整數)?
我不完全確定這個,但我認爲你可以傳遞一個數組作爲'collection'選項。 'f.input:level,collection:[[t('product.joinery'),:joinery],...]'。試試看。 – max
這可能的原因是['options_for_select']](http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select)接受'[[text,value]]'陣列的選項。 – max