Rails从子模块内部呈现部分

时间:2016-11-16 11:37:10

标签: ruby-on-rails ruby

我有一个子模块,它位于我的rails应用程序的根目录中。它实际上是另一个rails应用程序,我希望保留外部模块,以便它们可以用于我构建的其他应用程序。我目前正试图在子模块的视图文件夹中渲染部分,实际尝试渲染的类也在子模块内,但是对所述类的调用是在主视图中铁路应用。

它似乎抛出一个未定义的方法错误,它不理解"渲染"方法,即使建议是" _renderers"我印象中的方法也是轨道方法。因此,按照这种逻辑,我假设它确实理解了rails方法,它只是不喜欢渲染。

是否无法从子模块中调用render方法,或者是否存在某些需要解决的问题才能使用渲染?

模块调用render(root / submodule_name / app / controllers / submodule_name / application_controller.rb):

require 'ostruct'

module Pugin
  class ApplicationController < ActionController::Base
    protect_from_forgery with: :exception

    def self.get_component(component_name, model = nil)
        if model.is_a?(Hash)
            model = OpenStruct.new(model)
            render :partial => "layouts/pugin/#{component_name}", locals: {object: model}
        else
            render :partial => "layouts/pugin/#{component_name}", locals: {object: model}
        end
    end

  end
end

查看调用模块(root / app / views / people / show.html.slim):

= PUGIN.get_component('modules/profile-card', @person)

N.B PUGIN是一个解析为Module :: Class

的常量

0 个答案:

没有答案