【发布时间】:2016-03-05 01:12:02
【问题描述】:
我有一个注册表单 (Simple Form):
<%= simple_form_for(User.new, as: 'user', url: registration_path('user'), html: {id: "signup-form"},:remote => true) do |f| %>
<input name="redirect_to" type="hidden" value="true"/>
<%= f.input :first_name, required: true, autofocus: true, placeholder: "First Name", label: false %>
<%= f.input :last_name, required: true, autofocus: true, placeholder: "Last Name", label: false %>
<%= f.input :email, required: true, autofocus: true, placeholder: "E-mail Address" %>
<%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @validatable), placeholder: "Password" %>
<%= f.input :password_confirmation, required: true, placeholder: "Password Again" %>
<%= f.submit "Sign up", class: "btn btn-primary btn-lg btn-block", data: { target: "#confirm-modal", toggle: "modal", dismiss: "modal" }%>
<% end %>
当用户点击提交时,表单应该执行 Ajax POST 到 Devise::RegistrationsController 创建操作,然后显示另一个模式 data-target="#confirm-modal"。这里的问题是它没有提交任何发布请求。有Simple Form的具体配置吗?
【问题讨论】:
-
@Cyzanfar:我建议你看看这个教程,它将指导你了解 modals 在 Rails 中的工作原理,以便你掌握它:richonrails.com/articles/basic-ajax-in-ruby-on-rails
-
@Cyzanfar,个人从未尝试使用异步调用它的设计。你试过没有
:remote => true吗?如果可行,那么您需要从Devise::RegistrationsController重写Create method。
标签: ruby-on-rails ajax simple-form