首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails form_for check_box

Rails form_for check_box
EN

Stack Overflow用户
提问于 2014-02-26 01:36:09
回答 2查看 4.1K关注 0票数 1

我正在尝试创建一个基本的调查应用程序。在我的“采取调查”页面上,我循环遍历并将每个答案选项作为单选按钮或复选框显示为form_for,以创建用户的选择。对于单一选择(或单选按钮)的问题,这些选择非常有用,但它们没有为多个选择问题而保存。我很确定这与我的复选框的表单有关。

看来我应该这么做

代码语言:javascript
复制
<%= f.check_box :answer_id, answer.id %> <%= answer.title %> <br>

类似于我创建单选按钮的方式,但这会引发一个错误

代码语言:javascript
复制
undefined method `merge' for 14:Fixnum

下面是显示我的代码:

代码语言:javascript
复制
<h3>Questions:</h3>
<ul><% @survey.questions.each do |question| %>
    <li><p><%= question.title %></p></li>
    <% choice = question.choices.build %>
    <% if question.single_response == true %>
    <%= form_for [question, choice] do |f| %>

            <% question.answers.each do |answer| %>
            <%= f.radio_button :answer_id, answer.id %> <%= answer.title %><br>
            <% end %>
            <%= f.hidden_field :survey_id, value: @survey.id %>
            <%= f.submit %>
            <% end %>

            <br />
            <% else %>
                <%= form_for [question, choice] do |f| %>
                    <% question.answers.each do |answer| %>
                    <%= f.check_box :answer_id %> <%= answer.title %> <br>
                    <%= f.hidden_field :survey_id, value: @survey.id %>
                    <% end %>
                    <%= f.submit %>
            <% end %>
            <br />
        <% end %>
<% end %>
</ul>

知道我需要做什么才能让它将answer_id保存到选择中,这样它才能真正创建选择?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-26 03:22:58

对于复选框,实际上希望返回一个数组作为参数。这里有一些有趣的语法,因为我们实际上不想使用表单构建器方法。它应该如下所示(适应特定的模型名称和方法)

代码语言:javascript
复制
<%= check_box_tag 'choice[answer_ids][]', answer.id %>

使用这种语法应该告诉Rails将所有选中的复选框值编译成一个数组。

这条铁路讨论了这个主题。

票数 2
EN

Stack Overflow用户

发布于 2018-04-18 21:26:01

这个问题已经有几年的历史了,但我认为应该有一个更好的答案。由于您使用的是form_for (一个模型支持的表单),那么您可能希望使用最初尝试使用的form_for check_box方法。在你的例子中,它看起来是这样的:

<%= f.check_box :choice, { :multiple => true }, answer.id, false %>

这是这方面的医生。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22029951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档