如何将值从erb文件发送到ruby控制器?

时间:2018-12-29 11:56:26

标签: html ruby-on-rails ruby erb

我正在尝试创建一个动态测验系统,如下所示:

  1. 控制器将值传递到erb文件(该文件会创建一个html 第一个测验问题的表格)
  2. erb文件具有html格式,用户可以在其中输入输入内容
  3. erb文件将输入发送回控制器中的一个动作
  4. 该动作将检查输入值并加载下一个问题。下一个 问题取决于用户输入的内容。

现在,我知道可以将操作中的值发送到其相应的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”的动作。如何实现?

1 个答案:

答案 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