Как я могу отправить значения из файла erb на контроллер ruby? - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь создать систему динамической викторины следующим образом:

  1. Контроллер передает значение в файл erb (который создает html-форму с первым вопросом викторины)
  2. Файл erb имеет html-форму, в которую пользователь может ввести ввод
  3. Файл erb отправляет ввод обратно в действие в контроллере
  4. Действие проверяет входное значение и загружаетСледующий вопрос.Следующий вопрос зависит от того, что вводил пользователь.

Теперь я знаю, что могу отправить значение из действия в соответствующий ему файл erb.Основные вещи.Но как я могу отправить значение из файла erb обратно в контроллер (чтобы он мог обрабатывать ввод из формы html)?

Например, это то, что шаблон html (question1.html.erb)) для первого вопроса выглядит следующим образом:

<head ><title >Question 1</title ></head >
 <body>
    <form action="localhost:3000/welcome/processQ1" method = "get"> 
        <p>What is the sum of 5 + 6 ?</p> 
        <input name='sum' type='text' width='5' id='sum' required /> 
        <input type='submit' value='Submit' /> 
    </form >
</body> 

То, что я хочу, это отправить значение 'sum' обратно в действие, называемое "processQ1" в контроллере.Как этого достичь?

1 Ответ

0 голосов
/ 29 декабря 2018

Прежде всего, попробуйте всегда использовать способ 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 является опцией) в params хеш-переменной rails вашего действия create.

Пример: { quiz: {answer: 5 }} и сделать все, что вы хотите с этими данными.

Пожалуйста, прочитайте эту документацию.Это хороший способ понять эти процессы фреймворка.

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

...