2013-02-18 2 views
1

Я пытаюсь принести значение радиокнопки от формы:Rails получить значение radio_button

<%= 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 logger дает мне false.

Он переключается между значением null/false, а не false/true. Есть идеи?

ответ

1

Как указано в документации, третьим параметром является значение объекта HTML. http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-radio_button

Таким образом, я считаю, вы должны установить его так, как это:

<%= f.radio_button :is_code, true %> 

Тогда, если он не установлен, вы получаете значение false/null как oposed проверки радио, вы будете получите значение true.

Смежные вопросы