Ruby on rails Rails-帮助在RoR中为在线测验打分
我正在试着给我想做的测验申请打分。我有一个带有and ask(实际问题)的问题模型,4个选项(a-d)和一个正确答案(字符串) 在视图中,我显示了4个问题,然后是正确的答案选择(这只是一个功能测试),然后我创建了一个文本_字段来接受用户的答案选择,并创建了一个按钮来刷新索引操作,该操作现在具有评分逻辑 --我是否需要将文本字段放入表单标记中Ruby on rails Rails-帮助在RoR中为在线测验打分,ruby-on-rails,forms,textfield,Ruby On Rails,Forms,Textfield,我正在试着给我想做的测验申请打分。我有一个带有and ask(实际问题)的问题模型,4个选项(a-d)和一个正确答案(字符串) 在视图中,我显示了4个问题,然后是正确的答案选择(这只是一个功能测试),然后我创建了一个文本_字段来接受用户的答案选择,并创建了一个按钮来刷新索引操作,该操作现在具有评分逻辑 --我是否需要将文本字段放入表单标记中 <p>1. <%= h @question.q1 %></p> <p>2. <%= h @quest
<p>1. <%= h @question.q1 %></p>
<p>2. <%= h @question.q2 %></p>
<p>3. <%= h @question.q3 %></p>
<p>4. <%= h @question.q4 %></p>
<p>Answer: <%= h @question.correct %></p>
<%= text_field_tag :choice, params[:choice] %>
<%= button_to "Grade", {:controller => 'site', :action => "index"} %>
<p> <%= @answer %></p>
它真的不起作用。textfield应该选择字母选项,如“a”或“c”,并将其与数据库中的正确答案进行比较
我很想通过单选按钮来实现这一点,但我是rails的新手,所以我想我应该迈出一小步
因此,如果有人能帮助我通过字符串或单选按钮来解决这个问题,我将不胜感激。目前,您的代码将忽略输入的文本。用户输入需要发布(通过表单和提交按钮)或获取(也可以通过表单完成)
在这种情况下,我建议您将其放在表单标签中,并添加一个提交按钮。向控制器添加必要的操作(
save
我相信在这种情况下是这样),验证数据,然后呈现索引操作。我将这样做:
# in app/controller/QuestionsController
def index
@question = Question.find(1)
@grade = params[:choice] == @question.answer ? 'PASS' : 'FAIL'
end
它需要在config/routes.rb
文件中指定路由:
map.questions 'questions', :controller => 'questions', :action => 'index'
然后,在app/views/index.html.erb
中:
<h2><%=h @question.question_text %></h2>
<ol>
<li><%=h @question.q1 %></li>
<li><%=h @question.q2 %></li>
<li><%=h @question.q3 %></li>
<li><%=h @question.q4 %></li>
</ol>
<p>
Correct answer <%=h @question.correct %>
</p>
<% form_tag do %>
<p>Choice? <%= text_field_tag :choice %></p>
<%= submit_tag 'Grade' %>
<% end %>
<p>Grade: <%= @grade %></p>
正确答案
选择
等级:
如果您提供routes.rb文件以及控制器代码的其余部分,我可以为您提供更具体的帮助。上述答案一点也不平静。如果这对您很重要,那么路由配置和控制器代码也会有所不同。此外,使用RESTful设计,您可以在视图中为方法调用使用form\u,这在当今更为标准
<h2><%=h @question.question_text %></h2>
<ol>
<li><%=h @question.q1 %></li>
<li><%=h @question.q2 %></li>
<li><%=h @question.q3 %></li>
<li><%=h @question.q4 %></li>
</ol>
<p>
Correct answer <%=h @question.correct %>
</p>
<% form_tag do %>
<p>Choice? <%= text_field_tag :choice %></p>
<%= submit_tag 'Grade' %>
<% end %>
<p>Grade: <%= @grade %></p>