MID*_*MID 4 ruby-on-rails jquery-validate actioncontroller devise
我没有使用jQuery验证检查当前密码.我正在使用Devise gem和jQuery验证.萤火虫说:
问题出在我的控制器中:
def checkpass
user = User.find_by_email(params[:user][:email])
respond_to do |format|
if user && user.authenticate(params[:user][:password])
format.json { render :json => @user }
end
Run Code Online (Sandbox Code Playgroud)
结束
使用此代码,Firebug给了我错误
406 Not Acceptable
end
Run Code Online (Sandbox Code Playgroud)
checkemail唯一性动作的例子:
def checkemail
@user = User.find_by_email(params[:user][:email])
respond_to do |format|
format.json { render :json => !@user }
end
end
Run Code Online (Sandbox Code Playgroud)
我的js:
$("#edit_password").validate({
"user[current_password]":{
required: true,
minlength: 6,
remote: {
url: "http://127.0.0.1:3000/checkpass"
}
...
})
Run Code Online (Sandbox Code Playgroud)
和HTML:
<input type="password" size="30" name="user[current_password]" id="user_current_password" class="valid">
Run Code Online (Sandbox Code Playgroud)
有人可以建议怎么做吗?
小智 7
我正在使用rails版本4,当我尝试使用user.authenticate时,我收到错误说未知方法,所以我找到了另一种方法来检查密码是否有效,
valid_password?(current_password)
我想分享它,所以它也可以帮助别人.
在控制器中的check_pass函数中
user = User.find_by_email(params[:user][:email])
respond_to do |format|
if user && user.authenticate(params[:user][:password])
format.json { render :json => @user }
end
end
Run Code Online (Sandbox Code Playgroud)