ruby-on-rails - 一种将 before_filter 从引擎添加到应用程序的方法

标签 ruby-on-rails ruby-on-rails-3 plugins module rails-engines

没有很多具体的代码,这只是模糊的,但我会提供我能提供的。

给定一个 rails 引擎,一个基本引擎而不是在其自己的空间中的可安装引擎,我如何使引擎中的方法作为应用程序 Controller 的 before_filter 对应用程序可用?

我一直在查看 Devise 代码,因为我想要的与 Devise 的经验相似,但我承认我不明白我正在经历的很多事情。

如果我输入 include Myengine::Mymodule,我可以做到这一点在我希望有可用于过滤的方法的应用程序 Controller 中,但我希望可以只使用这些方法而不必包含模块。

这是尝试将 rails 应用程序转变为可供多个 rails 应用程序使用的引擎的最新障碍,任何有关正确命名空间、模块配置等的处理的指导,都值得赞赏。

最佳答案

如果我理解正确,您可以使用初始化程序,例如:

module MyEngine
    class Engine < Rails::Engine
        initializer  "myengine.load_helpers" do
            ActiveSupport.on_load(:action_controller) do
                include MyEngine::Helpers
            end
        end
    end
end

关于ruby-on-rails - 一种将 before_filter 从引擎添加到应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323327/

相关文章:

ruby-on-rails - 整数、索引列、外键、引用之间的差异和最佳实践

ruby-on-rails-3 - 如何使我的 LESS 变量可用于 Rails 中的所有 CSS 文件?

plugins - 如何为我的 Dart 应用程序包含插件系统?

ruby-on-rails - 二维数组前两列上的ruby uniq

ruby-on-rails - 我如何区分是 'first' 还是 'created' 与 first_or_create

ruby-on-rails - rails : render partial with selected controller and action in view

ruby-on-rails - 使用关联数据发布 JSON

ruby-on-rails - 如何使用 Rails 3 gem 'thumbs_up' 执行投票?

java - 你如何参数化 Spring Boot Gradle 插件?

javascript - Fullcalendar JS 突出显示有事件的日期,点击该日期将转到特定的 URL