この問題で見つかったものはすべて古くなっているか、動作しません。Rails 5 Devise:JSONを返すsign_in失敗
ゴール:ユーザーがモバイルアプリケーションから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、:only =>:new' =>' after_action:handle_failed_login、:only =>:create' –
これはRails 5.1.2ではうまくいきませんでした。コールバックは呼び出されません。 –