【问题标题】:How to override model from the doorkeeper gem如何从门卫宝石覆盖模型
【发布时间】:2014-12-03 05:36:46
【问题描述】:

您知道如何覆盖 Doorkeeper 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 代码应声明为初始化程序。但是我想要一个经典模型,因为我想添加很多东西。

【问题讨论】:

    标签: ruby-on-rails gem doorkeeper


    【解决方案1】:

    这就是我现在正在做的事情,无论如何仍在开发中,所以如果我发现问题,我会更新。

    我正在使用 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
    

    你已经完成了。

    我正在使用它来使用 RailsAdmin 自定义 Doorkeepe::Application(如果有人登陆这里,只是添加一些关键字)

    【讨论】:

    • 谢谢@enrico-carlesso 我昨晚想出了同样的解决方案。毕竟容易。关闭它。
    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多