Ruby on rails Rails应用程序通过单选按钮传递值
我正在尝试创建一个基本的测验应用程序来学习rails单选按钮 我有一个带有字段的测验模型-问题、选项1、选项2..选项4和答案 My index.html:Ruby on rails Rails应用程序通过单选按钮传递值,ruby-on-rails,Ruby On Rails,我正在尝试创建一个基本的测验应用程序来学习rails单选按钮 我有一个带有字段的测验模型-问题、选项1、选项2..选项4和答案 My index.html: <% @quizzes.each do |quiz| %> <h1><%= quiz.question %> </h1> <% question_count = question_count + 1 %> <%= radio_button_tag
<% @quizzes.each do |quiz| %>
<h1><%= quiz.question %> </h1>
<% question_count = question_count + 1 %>
<%= radio_button_tag question_count, quiz.option1 %>
<%= quiz.option1 %></br>
<%= radio_button_tag question_count, quiz.option2 %>
<%= quiz.option2 %></br>
<%= radio_button_tag question_count, quiz.option3 %>
<%= quiz.option3 %></br>
<%= radio_button_tag question_count, quiz.option4 %>
<%= quiz.option4 %></br>
<%= button_to 'Submit', check_quiz_path(quiz), :method => :post %>
<% end %>
:post%>
我的问题很简单。我想检查测验控制器检查方法中单选按钮的值。我不知道该怎么做。
请帮忙
提前感谢如果您希望验证用户在提交之前必须选择一个选项,您需要在测验模型中进行活动记录验证 (app/model/quick.rb)。请看一下关于这个问题的最新报告 更新 将信息从视图传递到控制器的唯一方法是从参数。在
QuizzesController
中的创建操作(方法)中,您需要访问传递的参数,并将其与答案的值进行比较
调试代码的一个好方法是在代码中的特定时刻删除。我使用的是Ruby gem,它可以帮助您调试代码
这是检查我的参数是否正确传递的方法:
首先安装gemgem install pry
然后安装bundle
现在在你的测验控制器里
require 'pry'
class QuizzesController < ApplicationController
def create
binding.pry
end
end
需要“撬动”
类QuizzesController
现在启动服务器
rails s
,然后浏览到测验的路线,选择答案并提交答案。一旦你这样做了,你的POST请求将命中create方法,你的程序将挂起pry。如果您查看一下bash,就会发现您可以直接与create方法交互。只需在bash中键入params
,即可返回params(这是一个包含键值对的散列)。这是了解程序正在执行什么以及如何执行和传递信息的好方法。Userparams
关于控制器方法
params[:question\u count]
检查已检查收音机的值
更新:
我假设question\u count
是整数,因此每个收音机的名称变成name=“5”
。这样,您可以使用params[“5”]
访问其值
最好是用一些字符串设置名称,或附加一些字符串,如“验证”,您的意思是确保选中了单选按钮?否我不想验证复选框是否选中。我想确认答案是否正确controller@Cyzanfar问题更新否我不想验证复选框是否选中。我想确认控制员的答案你们怎么称呼一个问题的答案?类似于
@quizzes.each{124; quick | quick.question.answer}
?我只想将选中单选按钮的值传递给控制器方法“check”,我将用我的答案验证“check”方法中传递的值更新我的答案。问题是什么?