2

Simple Form で作成したフォームに次の行があります。

 <fieldset>
    <legend>Any acessory?</legend>
      <li><%= f.input :has_acessory, label: false, collection: ["0","1"], as: :radio_buttons, input_html:{ name: 'has_acessory'} %></li>
</fieldset>

シンプル フォームは次のコードを生成します。

<fieldset>
    <legend>Any Acessory?</legend>
      <li><div class="input radio_buttons optional lending_has_acessory"><label class="radio"><input checked="checked" class="radio_buttons optional" id="lending_has_acessory_0" name="has_acessory" type="radio" value="0" />0</label><label class="radio"><input class="radio_buttons optional" id="lending_has_acessory_1" name="has_acessory" type="radio" value="1" />1</label></div></li>
</fieldset>

私はSQLite3を使用しています.lendingsというテーブルがあり、has_acessoryという整数列があり、デフォルト値は0です

貸出モデル:

class Lending < ActiveRecord::Base
attr_accessible :devolution_date, :lending_date, :situation, :description,:has_acessory, :person_id, :equipment_id
#Associations
belongs_to :equipment
belongs_to :person

終わり

しかし、ラジオ ボタンでどの値を選択しても、has_acessory 列には常に "0" (既定値) が表示されます。既にパラメーターを確認したところ、"has_acessory" =>"0" が見つかりました。または「1」。

私にとって、この部分はかなりうまく機能していますが、has_acessory 列に保存できないのはなぜですか?

4

2 に答える 2

0

これを試して

この行をコントローラーメソッドに追加します

params[:has_acessory] = params[:has_acessory].to_i
于 2013-10-29T13:34:25.863 に答える
0

Railsにもっと多くの仕事をさせようと思います。

試してみ<%= f.input :has_acessory %>て、それがあなたに与えるものを見てください。

これらすべて<%= f.input :has_acessory, label: false, collection: ["0","1"], as: :radio_buttons, input_html:{ name: 'has_acessory'} %>があると、デバッグが難しくなります。

移行/データベースを見て、フィールドがブール値であることを確認してください。そうであれば、Rails は適切なオプションをすべて見つけ出します。

また、フィールドにはデフォルトがあると言われていますが、モデルにはそれがありません。モデルでその行を省略しただけですか?Railsモデルとデータベースの両方にありますか?

于 2013-10-29T13:34:29.690 に答える