我正在尝试从表单中获取单选按钮的值:
<%= form_for Text.new, remote: true do |f| %>
<%= f.radio_button :is_code, false %>
<%= f.text_area(:content, :size => '50x10', :class=>'input_text')%>
<%= f.submit "Send", :class=>'input_send' %>
<% end %>
现在,当我在控制器中检查我的参数时:
def create
response.headers["Content-Type"] = "text/javascript"
attributes = params.require(:text).permit(:content, :name, :is_code)
attributes[:name]=current_user.name
Rails.logger.info attributes[:is_code]
attributes[:content]='code was given' if attributes[:is_code]==true
@message = Text.create(attributes)
end
现在如果没有点击单选按钮,我得到的值为null。 (我指定了一个默认值,为什么这会给我null?)
如果单击单选按钮,Rails记录器会给我错误。
它在null / false之间切换,而不是false / true。有什么想法吗?
答案 0 :(得分:1)
如文档所述,第三个参数是HTML对象的值。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-radio_button
所以,我相信你必须把它设置为真,如下:
<%= f.radio_button :is_code, true %>
然后,如果未选中,则会获得false/null
值,因为选择检查广播,您将获得true
值。