0

多くのバージョンを持つ製品モデルがあります。

class Product < ActiveRecord::Base
  attr_accessible :name, :versions_attributes
  has_many :versions
  accepts_nested_attributes_for :versions, allow_destroy: true
end

class Version < ActiveRecord::Base
  attr_accessible :available_q, :kind, :product_id
  belongs_to :product
end

available_q「はい」または「いいえ」を選択できる選択ボックスとして(管理者)ユーザーに属性を提示したいと思います。もちろん、現在バージョンデータベースにあるものを選択ボックスに表示させたいと思いますこのバージョンですが、それを行うことができないようです。関連するモデルの選択ボックスを含む製品フォームのビュー コードの一部を次に示します。

<%= form_for(@product) do |f| %>
…
<%= f.fields_for :versions do |version| %>
<%= version.select :available_q, options_for_select([['Yes', 't'],['No', 'f']], version.object.available_q) %><br />
…
<% end %>
…

データベースを「いいえ」で更新した後でも、現在の選択ボックスが常に「はい」と表示されることを除いて、すべてがうまく機能します。非常に単純なことを忘れている可能性がありますが、これについて何か助けていただければ幸いです。

4

2 に答える 2

0
<%= version.select :available_q, options_for_select([['Yes', 't'],['No', 'f']], version.object.available_q == 't' ? 0 : 1) %>

上記の解決策を試すことができます。options_for_select の 2 番目のパラメーターは、表示される値ではなく、コレクション配列の値のインデックスです[['Yes', 't'],['No', 'f']]

于 2013-10-16T11:45:20.717 に答える
0

私は回避策を見つけました:私が抱えていた問題は、データ型:available_qを持つ whichを使用することに関係しているようです。booleanタイプに変更するとstring、問題がなくなります!

于 2013-10-18T20:44:23.253 に答える