ruby-on-rails - 如何从Rails应用程序调用Rails可挂载引擎方法?

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2

可安装的引擎 Controller 方法:

module ServiceApi
  module Api
    module V1
      class RequestorController < ApplicationController
        def get_details(query_parameters)
          #some code here
        end
      end
    end
  end
end

Rails应用程序 Controller 从可挂载引擎调用get_details(params)方法
ServiceApi::Api::V1::RequestorController.new.get_details(params)

最佳答案

在我看来,您似乎不是在寻找 Controller Action ,而是在寻找一种辅助方法。例如, Controller Action 不带参数。

如果您仍然希望按说明将其保留在 Controller 中,那很好,但是您可以将其提取到帮助器中,并将该帮助器包含在要使用它的每个 Controller 中。

例如,

# [engine]/app/helpers/requestor_helper.rb

module ServiceApi::Api::V1::RequestorHelper
  def get_details(query_parameters)
    # code
  end
end

然后在您的 Controller 中
include ServiceApi::Api::V1::RequestorHelper

当您想要的是module时,无需滥用类。

关于ruby-on-rails - 如何从Rails应用程序调用Rails可挂载引擎方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529938/

相关文章:

javascript - 如何将局部变量发送到仅在单击链接后呈现的部分?

python - Ruby on Rails 与 Django

ruby-on-rails - rails 3 : Autoscaling workers in Heroku

javascript - rails : Can I send a GET request to a create path?

ruby-on-rails - 传递获取请求而不是来自 new.html 的发布请求

ruby-on-rails-3 - Rails 与 Ransack 的排序关联

css - Rails 4 字体在 Apache 上的生产中预编译后不呈现

ruby-on-rails - 具有自定义域的 Heroku 中的 SSL

ruby-on-rails - 路由到/public中的静态html页面

ruby-on-rails - Rspec Ruby on Rails Controller 问题