2017-02-16 51 views
0

我目前使用Clearance进行身份验证。作为登录过程的一部分,我想确保我有一个用户位置(存储在会话中)。Rails 5带间隙的地理位置

我的问题是如何在清除的情况下做到这一点?理想情况下,我只想在登录时执行查找(以节省网络流量/ API调用)。如果我找不到用户,我会拒绝登录。

我正在考虑使用guard,但我似乎没有访问request.ipsession,这是一个交易断路器。我还试图避免重定向到只能进行地理位置的URL,然后再重定向。

任何人都有关于如何使这项工作的好模型的想法?谢谢!

回答

1

登录警卫主要用于防止或允许登录的流程。我认为他们不适合这里。对于这种使用情况下,我建议压倒一切sign_in,通常混合到ApplicationController

def sign_in(user, &block) 
    super 

    if signed_in? 
    UserGeocoder.call(current_user) 
    end 
end 
+0

感谢德里克,我会它肯定似乎比卫队的做法更合适的给这条道路一试。 – krsyoung

+0

为了记录这个工作就像一个魅力。 – krsyoung