如何从Rails应用程序调用Rails可安装引擎方法?

Fra*_*cks 9 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-4

可安装发动机控制器方法:

module ServiceApi
  module Api
    module V1
      class RequestorController < ApplicationController
        def get_details(query_parameters)
          #some code here
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

Rails app Controller get_details(params)从可安装引擎调用方法

ServiceApi::Api::V1::RequestorController.new.get_details(params)
Run Code Online (Sandbox Code Playgroud)

小智 0

在我看来,您并不是在寻找控制器操作,而是在寻找辅助方法。例如,控制器操作不带参数。

如果您仍然希望它如所述那样存在于控制器中,那很好,但是您可以将其提取到助手中,并将该助手包含在您想要使用它的每个控制器中。

例如,

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

module ServiceApi::Api::V1::RequestorHelper
  def get_details(query_parameters)
    # code
  end
end
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中

include ServiceApi::Api::V1::RequestorHelper
Run Code Online (Sandbox Code Playgroud)

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