我的这一行是用简单形式制作的:
<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>
和Simple Form生成此代码:
<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的Integer列,它的默认值为: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”=&gt ;“0”或“1”。
对我来说这部分工作得很好,但为什么不能将它保存在has_acessory列中呢?
答案 0 :(得分:0)
试试这个
将此行添加到控制器方法
中params[:has_acessory] = params[:has_acessory].to_i
答案 1 :(得分: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模型和数据库中吗?