2014-12-03 3 views
1

Есть ли у вас какие-либо идеи, как переопределить Doorkeeper::Application, предоставленный Doorkeeper gem.Let, я хочу добавить валидацию, обратные вызовы и т. Д. Таблица 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 код должен быть объявлен как инициализатор. Однако я хотел бы иметь классическую модель, так как я хочу добавить много.

ответ

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 с RailsAdmin (просто добавить некоторые ключевые слова, если кто-то земли здесь)

+0

Спасибо @ Энрико-Carlesso я пришел с тем же раствором вчера поздно вечером. Легко ведь. Закрытие. – olimart