2

有効な値の固定リストを持つ DB の FLOAT フィールドに :as => :selected 入力を指定して Formtastic を使用しています。この Formtastic 入力 (DB :verticalCDR のフィールド) のフォーム ビュー コードは次のとおりです。

<%= clr.input :verticalCDR, :label => "Vertical CDR: ", :as => :select, 
:collection => [0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0], 
:wrapper_html => { :class => "CRF_Field" }  %>

フォームが送信されると、値は適切に DB に保存されますが、同じレコードが再度表示されると、DB からの現在の値は :select 入力で選択された値ではありません。空白です。

フォームの他のすべての入力は期待どおりに機能しています。

どんな助けでも大歓迎です!

4

1 に答える 1

0

私はそれを理解したと思います。そのフィールドが数値であっても、明らかにコレクションは文字列を使用する必要があります。コレクションを次のように変更します。

<%= clr.input :verticalCDR, :label => "Vertical CDR: ", :as => :select, 
:collection => ["0.0", "0.05", "0.1", "0.15", "0.2", "0.25", "0.3", "0.35", "0.4", "0.45", "0.5", "0.55", "0.6", "0.65", "0.7", "0.75", "0.8", "0.85", "0.9", "0.95", "1.0"], 
:wrapper_html => { :class => "CRF_Field" }  %>

これは私にはやや望ましくないように思えますが、文字列型への/からの変換に関係していると推測しています。

于 2012-07-27T15:37:07.970 に答える