我在这个问题上似乎找到的所有内容都已过时和/或无法正常工作。Rails 5设计:在sign_in上返回JSON失败
目标:当用户试图通过JSON从移动应用程序和用户名或密码登录是错误的,我想Rails的返回JSON数据,所以误差可以在应用程序中显示。
到目前为止,我已经做了以下内容:
class Users::SessionsController < Devise::SessionsController
# before_action :configure_sign_in_params, only: [:create]
skip_before_action :verify_authenticity_token
respond_to :json
# POST /resource/sign_in
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_flashing_format?
sign_in(resource_name, resource)
yield resource if block_given?
respond_with resource, :location => after_sign_in_path_for(resource) do |format|
format.json {render :json => resource } # this code will get executed for json request
end
end
end
这行之有效的成功,但我不知道,当它不能做什么。现在,它会返回一个未定义的方法错误:
undefined method `users_url' for #<Users::SessionsController:0x0000000195fa28>
'after_filter工作:handle_failed_login,:只=>:new' =>'after_action:handle_failed_login,:只=>:create' –
这并没有为我on Rails的5.1.2工作。回调永远不会被调用。 –