单选按钮值不在params hash

时间:2017-03-14 22:04:24

标签: ruby-on-rails ruby controller radio-button

我对params有问题。主要是,我期望在那里的价值,不存在。我有一些带有一些单选按钮的布局。我的想法是,当我选择其中一个单选按钮时,该值应该出现在params[:answer]中。但是,此值为NIL,因此永远不会更新,我不确定原因。这是我的代码(稍微修改以删除不相关的部分)。

在视图question/sub_view.html.erb中,我有以下单选按钮:

<div id="radio_buttons">
  <%= radio_button_tag :submit, name: 'answer', value: 'answer_1' %>Answer 1<br>
  <%= radio_button_tag :submit, name: 'answer', value: 'answer_2' %>Answer 2<br>
</div>

我有一个观点question/question.html.erb

<h1>Question</h1>
<div align="center">
  <%= render partial: "question/sub_view" %>
</div>

<div class="buttons">
  <%= link_to "Next", question_path, class: "btn btn-large btn-primary" %>
</div>

routes.rb

get 'question' => 'question#question'

现在重要的一点,在QuestionController.rb,我有以下内容:

class QuestionController < ApplicationController

  def question
    puts params # print to console to check the parameters

    # stuff omitted that is not relevant
  end
end

我希望params包含值'answer'(例如,'answer'=>'answer_1')。为什么会这样?

1 个答案:

答案 0 :(得分:2)

您必须为此方法使用正确的语法。我也添加了很好的标签。

<% = radio_button_tag :answer, 'answer_1', checked: true %>
<% = label :answer, 'Answer 1' %>

<% = radio_button_tag :answer, 'answer_2', checked: true %>
<% = label :answer, 'Answer 2' %>
  

radio_button_tag(name,value,checked = false,options = {})

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-radio_button_tag