您是否知道如何覆盖门卫gem提供的Doorkeeper::Application
。让我说我想添加验证,回调等等。 Db表名为auth_applications
。
我创建了一个名为application.rb的模型,其中包含以下内容,但我的before_create调用未被触发。什么是最好的方法?
module Doorkeeper
class Application < ActiveRecord::Base
include ApplicationMixin
require 'identicon'
before_create :generate_identicon
def generate_identicon
self.identicon = Identicon.data_url_for name, 128, [255, 255, 255]
end
end
end
根据this SO answer代码应声明为初始化程序。但是我想要一个经典模型,因为我想添加很多。
答案 0 :(得分:3)
这就是我现在正在做的事情,无论如何还在继续发展,所以如果我发现问题,我会更新。
我使用ActiveRecord执行此操作,也许对于Mongoid / Mongomapper,需要进行一些更改。
幸运的是Doorkeeper::Application具有设置正确表名的所有配置,因此您不必为此烦恼。
考虑到这一点,你可以像这样添加app/models/application.rb
:
class Application < Doorkeeper::Application
require 'identicon'
before_create :generate_identicon
def generate_identicon
self.identicon = Identicon.data_url_for name, 128, [255, 255, 255]
end
end
你已经完成了。
我使用它来自定义Doorkeepe :: Application with RailsAdmin(只是为了添加一些关键字,如果有人在这里登陆)