我想在注册用户时添加电子邮件确认。用户必须使用他们的邀请码和电子邮件地址填写表格,然后他们会收到一封包含激活链接的电子邮件。format.js不执行(ajax)
所以我想要做的就是让用户填写表单,然后提交表单并重新加载表单,以便隐藏和显示消息“我们向您发送了一封电子邮件,请检查并单击链接“而不是重新加载整个页面。
signup.html.erb
这里我添加了遥控:真
<%= form_tag(form_action, method: :get, remote: true, id: 'create-form') do %>
users_controller.rb
重定向的作品,但format.js是未知格式
def new
... code checking params
if @user.user_email_confirmed
render :new
else
respond_to do |format|
format.html { redirect_to signup_path(@user.name, email: @user.email) }
format.js
end
end
new.js.erb
$('#create-form').hide().after('');
$('.login-form').append('<p class="link-sent">We have sent an activation link to the email address you entered - please be sure to check your spam or trash folders. Please click that link to complete account activation.</p>');
不知道我错过了什么,什么想法?
当你点击窗体中的“提交”按钮时,你确定你的'new'动作被调用,我真的不这么认为! – SsouLlesS
请检查您的控制器中是否有'before_action'或任何其他回调,可能导致问题 – SsouLlesS
我很确定提交按钮调用新的。表单操作指向用户#新路由。 – cvDv