我是红宝石的初学者,我的英语不好:(。
我使用rails创建了我的网站,并使用devise gem创建用户。 在sign_up中。 users / registrations / new.html.erb 我有:
<div class="form-group">
<%= f.label :"Email address *" %>
<%= f.email_field :email, class: "form-control" , placeholder: "Enter your email", name: "email" %>
</div>
我正在使用validate jquery插件来验证表单。 添加新规则
jQuery.validator.addMethod("checkAlreadyEmail", function( value, element ) {
var unavailable = true;
$.ajax({
url : '/users/check_already_email',
type : "POST",
async: false,
data : 'email =' + value,
dataType : "json",
success : function(data) {
if(data.available == true){
unavailable = false;
}
}
});
return unavailable;
}, "This email is already taken");
$("#new_user").validate({
rules: {
email: {
required: true,
email: true,
checkAlreadyEmail: true,
},}
messages: {
email: {
required: "Please enter your email",
email: "Please enter valid email address",
checkAlreadyEmail: "This email is already taken",
},},})
在users / registrations_controller.rb中我有
def check_already_email
@email = users.search(params[:email])
end
下一步是什么?对不起,这是我第一次在stackoverflow中询问。
答案 0 :(得分:0)
该过程如何运作,
1 - 用户填写表格
2 - 用户点击submit
按钮
3 - JQuery validator
将根据您定义的规则验证表单,如果一切正常,则提交表单(将在数据库中创建用户)
根据您的代码,您应该在config/routes.rb
中添加路由来处理请求check_already_email
。类似......
#config/routes.rb
get "registrations/check_already_email" =>"registrations#check_email", as: :check_email