【发布时间】:2015-09-09 02:32:15
【问题描述】:
我是 Ruby 的初学者。
我已经使用 Rails 创建了我的网站,并且正在使用 Devise gem 来创建用户。 在注册中。 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>
我在我的验证表单上使用了一个 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 上提问。
【问题讨论】:
-
这是一个相当广泛的问题。你有什么真正想知道的吗?
-
对不起,我只想检查 rails 中存在的电子邮件,并通过 validate 中的消息显示。感谢 Rohit Gupta :)
-
为什么要使用 JQuery 进行验证?您可以使用
validates :email, unique: true轻松地将验证添加到您的用户模型
标签: ruby-on-rails ruby devise jquery-validate