В настоящее время у меня есть приложение, в котором посетители регистрируются через форму AJAX с помощью устройства devise.
Я хочу улучшить эту форму и сделать следующее:
- Когда пользователь находится на странице, появляется модал с выбором подписки.
- Как только он отправит эту форму, появится форма регистрации.
- После того, как он заполнил форму и отправил ее, появляется форма оплаты (+ резюме выбранной подписки).
- Как только пользователь заплатил, он перенаправляется.
Так что я думал о трех последовательных AJAX-вызовах, чтобы сделать это, но я застрял.
Вот что я сделал для первой части (чтобы перейти от формы выбора подписки к форме регистрации):
питание / index.html.erb:
<% if current_user == nil %>
<%= render partial: 'subscriptions/subscription_selection' %>
<% end %>
subscription / _subscription_selection.html.erb:
<!-- some blabla -->
<%= form_tag save_subscription_choice_path, method: "get", remote: true do %>
<%= hidden_field_tag 'chosen_subscription', '22'%>
<%= submit_tag 'CHOISIR CETTE FORMULE', class: 'btn btn-primary' %>
<% end %>
subscription_controller.rb:
def save_subscription_choice
@subscription_choice_id = params['chosen_subscription']
respond_to do |format|
format.js
end
end
config / rout.rb:
get "subscriptions/save_subscription_choice", to: "subscriptions#save_subscription_choice", as: "save_subscription_choice"
subscription / save_subscription_choice.js.erb:
$(".subscription-selection-modal").html("<%= escape_javascript(render partial: 'meals/signup_modal') %>");
console.log('save_subscription_choice.js.erb succesfully loaded');
и журналы ошибок:
Started GET "/subscriptions/save_subscription_choice?utf8=%E2%9C%93&chosen_subscription=12&commit=CHOISIR+CETTE+FORMULE" for 127.0.0.1 at 2018-08-29 15:48:04 +0200
Processing by SubscriptionsController#show as JS
Parameters: {"utf8"=>"✓", "chosen_subscription"=>"12", "commit"=>"CHOISIR CETTE FORMULE", "id"=>"save_subscription_choice"}
Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)
Started GET "/users/sign_in.js" for 127.0.0.1 at 2018-08-29 15:48:04 +0200
Processing by Devise::SessionsController#new as JS
Completed 406 Not Acceptable in 1ms (ActiveRecord: 0.0ms)
ActionController::UnknownFormat (ActionController::UnknownFormat):
Понятия не имею, почему приложение вызывает /users/sign_in.js, его даже нет в моем собственном коде (вероятно, это файл разработки, я думаю?)
Есть идеи о том, как я мог бы сделать эту работу?