如何在Ruby on Rails gem中包含一个控制器?[英] How to include a controller with a Ruby on Rails gem?

本文是小编为大家收集整理的关于如何在Ruby on Rails gem中包含一个控制器?的处理方法,想解了如何在Ruby on Rails gem中包含一个控制器?的问题怎么解决?如何在Ruby on Rails gem中包含一个控制器?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试为一个开源项目做出贡献,我需要一个控制器来处理需要提交的几个表单.

我在 gem 中名为 app/controllers/gemname/my_controller.rb 的目录中创建了这些控制器.

但是,当我尝试访问控制器时,它似乎没有被加载(我收到一个名称错误,就像我输入了 NonExistentController 之类的内容一样).

如何使用 gem 加载我的控制器?

谢谢!

推荐答案

假设您的 gem 名为 MyGem 并且您有一个名为 SuperController 的控制器,您想在应用程序中使用它.您的控制器应定义为:

module MyGem
  class SuperController < ApplicationController
    def whatever
      ...
    end
  end
end

并且在您的 gem 目录中,它应该位于 app/controllers/my_gem/super_controller.rb (not 在 lib 文件夹下).查看 Devise 的源代码,因为他们做同样的事情.

[编辑] 您可以从 启动您自己的 Rails 引擎 Gem 的指南当前项目.

本文地址:https://www.itbaoku.cn/post/786702.html