Я пытаюсь создать сайт стиля мастера, чтобы помочь создать объект.
Каждый шаг пользователя вводит некоторые параметры. Я хочу создать и сохранить объект в БД только тогда, когда все параметры будут представлены на последнем шаге.
Контроллер Rails: как передать параметры между действиями в стиле мастера?
class ExperimentsController < ApplicationController
def wizard_step_1
render template: "experiments/wizards/step1"
end
def wizard_step_2
render template: "experiments/wizards/step2"
end
def wizard_step_3
binding.pry
# how to access params in step 1 & 2 here?
end
end
View step1 below:
<%= form_tag(action: 'wizard_step_2') do %>
<%= text_field_tag("user_name") %>
<%= submit_tag("Next >>") %>
<% end %>
View step2 below:
<%= form_tag(action: 'wizard_step_3') do %>
<%= text_field_tag("user_email") %>
<%= submit_tag("Next >>") %>
<% end %>
Я не размещал информацию о маршруте здесь, так как он протестирован ОК. Когда пользователь посещает step1 и вводит имя пользователя, при отправке управления формой переходит в wizard_step_2 и показывает вид step2. Здесь пользователь вводит адрес электронной почты и при нажатии кнопки отправки кнопки выполняет действие wizard_step_3. Тогда мой вопрос заключается в том, как получить имя пользователя и отправить по электронной почте входы пользователя на предыдущих шагах?
Я думал о gem Wicked, и кешках Rails и т. Д., И более или менее они не отвечают моим потребностям. Есть ли достойный способ сделать это?
Спасибо, хранение сеанса, по-видимому, является моим единственным выбором, если я не хочу хранить данные в БД. – user1991452
Или обычные файлы cookie, но это зависит от клиента, а не от сервера. –