2014-12-03 74 views
1

你有任何想法如何覆蓋由門衛gem提供的Doorkeeper::Application。比方說,我想添加驗證,回調等。 Db表被命名爲auth_applications如何覆蓋門衛gem的模型

我創建了一個名爲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代碼應該聲明爲初始化。不過,我想有一個經典模型,因爲我想添加很多。

回答

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 ::與RailsAdmin應用程序(只需添加一些關鍵字,如果有人在這裏的土地)@恩里科 - carlesso我用同樣的解決方案昨晚想出了

+0

感謝。畢竟容易。關閉它。 – olimart 2014-12-04 15:08:23