【发布时间】:2011-09-11 02:00:56
【问题描述】:
我对 Rails 比较陌生。我已经设置好设计,想在用户登录后运行一些回调代码。
查看Warden wiki page,我可以使用“after_set_user”回调来执行这个逻辑,例如:
Warden::Manager.after_set_user do |user, auth, opts|
unless user.active?
auth.logout
throw(:warden, :message => "User not active")
end
end
但是,我不确定应该将这些东西存放在哪里。我的第一个想法是我可以把它放在 config/initializers/devise.rb 中。那是对的吗?将本质上是控制器代码的内容放在 config 目录中感觉不对。
【问题讨论】:
-
看起来像一个过滤器,“after_set_user”也就是说,我猜是一个控制器。
-
其实我在initializers/devise.rb中找到了一个名为“Warden configuration”的部分,所以我猜是放置它的正确位置。
-
你找到把这段代码放在哪里了吗?或者您是否以某种方式使其适应了 Devise 初始化程序的代码风格?
-
我把它放在 config/initializers/devise.rb 的底部。我认为没有办法使用本机设计代码来做到这一点。在这种情况下,我需要在我的用户模型中执行一些 OAuth 配置文件合并内容,即所谓的方法。
-
@Bero 就像答案一样,在模型代码中。
标签: ruby-on-rails devise warden