【问题标题】:Radio Button value not in params hash单选按钮值不在参数哈希中
【发布时间】:2017-08-05 11:08:21
【问题描述】:

我的参数有问题。主要是,我期望存在的价值不存在。我有一个带有一些单选按钮的布局。这个想法是,当我选择其中一个单选按钮时,该值应该出现在 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'=&gt;'answer_1')。为什么会这样?

【问题讨论】:

  • 查看生成的html,你会明白为什么它不起作用

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


【解决方案1】:

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

<% = 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(名称,值,选中 = false,选项 = {})

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

【讨论】:

  • 谢谢,虽然它仍然不起作用,'answer' 仍然没有出现在 params 映射中。那么问题可能出在其他地方?
  • 我试过了,这段代码有效。你的params 的输出是什么?
  • 如果我把params 放到控制台我得到:{"action"=&gt;"question", "controller"=&gt;"question"}
  • 提交表单后?那么你在控制器中做错了什么。
  • 经过一番挖掘,我找到了解决方案:我把它做成了一个表单,使用submit_tag作为按钮,将question操作作为action参数添加到表单并添加了一个@987654331 @到routes.rb。 (希望不是太神秘的解释)。
猜你喜欢
  • 1970-01-01
  • 2019-05-30
  • 2014-03-30
  • 2016-06-27
  • 2014-10-27
  • 2015-03-22
  • 2011-04-14
  • 2010-10-20
  • 2017-02-15
相关资源
最近更新 更多