gpt4 book ai didi

ruby-on-rails - Railtie:如何访问初始化程序和库加载 Hook ?

转载 作者:行者123 更新时间:2023-12-04 03:45:32 27 4
gpt4 key购买 nike

我正在为我的 Rails 应用程序开发一个 gem,它通过 Railtie 加载到其中。我基本上是以旧的 Rails 应用程序样式将模型插入到,以及库和一些初始值设定项中。我主要担心的是不知道在整个 Rails 应用程序加载逻辑中我最好将它们插入的位置。我的要求是:必须在应用程序初始化程序之前加载 gem 初始化程序,与库相同,初始化程序访问库信息。在 Rails 应用程序工作流中,它以某种方式工作。我的短期解决方法如下:

module Gemname
def self.initialize_railtie
ActiveSupport.on_load :active_record do
require 'gemname/lib'
require 'gemname/initializers'
end
end
class Railtie < Rails::Railtie
initializer 'gemname.insert_into_app' do
Gemfile.initialize_railtie
end
end

这样一来,我确信在初始化程序之前加载了库。只是我很确定有更好的方法来做到这一点,即访问一些 railtie hook,它允许我使用应用程序库加载我的库,并使用应用程序初始化程序加载初始化程序。只是我似乎无法找到它们。

最佳答案

我想你想要的是 config.after_initialize 。根据 here :

Last configurable block to run. Called after frameworks initialize.



here :

after_initialize: Run directly after the initialization of the application, but before the application initializers are run.



所以你会有:
module Gemname
class MyCoolRailtie < ::Rails::Railtie
config.after_initialize do
require 'gemname/lib'
require 'gemname/initializers'
end
end
end

关于ruby-on-rails - Railtie:如何访问初始化程序和库加载 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com