2016-10-28 2 views
0

if_login이라는 열을 users이라는 테이블 하나에 설정했습니다. sign_in 경로를 실행하면 user_sign_in? 메서드를 사용하여 if_login 값을 1로 설정합니다. devise의 코드를 수정하여 if_login을 0으로 설정하려면 어떻게해야합니까? excute에 'sign_in'경로, 방법은 사용자의 값 'if_login'를 설정할 때 여기한 사용자가 devise로 sign_out을했을 때 데이터베이스에 하나의 열을 어떻게 설정할 수 있습니까

당신은 몇 가지 코드를 제공해야 = 1
if user_signed_in? 
    @user.update(if_login:1) 
end 
@user.save 
+0

에 방법을 추가해야합니다 당신의 경우 제대로 문제를 설명 할 수 없으면 사람들이 당신을 도울 수 없게됩니다. –

+0

당신 말이 맞아요. 감사합니다 – Hitcker

답변

0

당신이와 ApplicationController

class ApplicationController < ActionController::Base 
    private 

    def after_sign_out_path_for(resource_or_scope) 
    # here write your code for the update your if_login 
    root_path 
    end 
end 
+0

고마워요. 제일 먼저 감사합니다. 저는 ApplicationController에서 다음과 같이했습니다 :'current_user.update (if_login : 0)'. 그러나, 'nil : NilClass'에 대해 'undefined method'update'오류가 발생합니다. 'after_sign_out_path_for' 메서드를 사용하면 current_user가 손실됩니다. 어떻게 보존 할 수 있습니까? – Hitcker