我正在尝试创建一个动态测验系统,如下所示:
现在,我知道可以将操作中的值发送到其相应的erb文件。基本的东西。但是如何将erb文件中的值发送回控制器(以便它可以处理来自html表单的输入)?
例如,这是第一个问题的html模板(question1.html.erb)的样子:
describe('whiteBox Dragging Test', function() {
it('Drag whiteBox to right', function () {
const EC = protractor.ExpectedConditions;
const whiteBox = element(by.css('#whiteBox'));
browser.wait(EC.presenceOf(whiteBox), 5000).then(() => {
browser.actions().mouseDown(whiteBox).mouseMove({x: 50, y: 0}).mouseUp().perform();
});
});
});
我想要的是将'sum'的值发送回控制器中一个名为“ processQ1”的动作。如何实现?
答案 0 :(得分:1)
首先,请尝试始终使用Rails方式而不是html pure标记创建表单:
<%= form_for :quiz do |f| %>
<label>What is the sum of 5 + 6 ?</label>
<%= f.text_field :answer %>
<%= f.submit "Submit" %>
<% end %>
提交后,在您的控制器中您将在ProcessQ1
中得到答案的值(这对控制器来说不是一个好名字,因为它们是复数形式,并且更通用。因此,出于您的目的,{创建动作时,QuizzesController
中的{1}}是rails hash变量。
例如:params
并使用此数据进行任何操作。
请阅读此文档。这是理解框架的过程的好方法。
http://guides.rubyonrails.org/form_helpers.html
http://guides.rubyonrails.org/getting_started.html
http://guides.rubyonrails.org/getting_started.html#saving-data-in-the-controller