如何在Rails中从模型渲染视图?

时间:2013-01-26 02:33:54

标签: ruby-on-rails ruby ruby-on-rails-3

我必须编辑一个Rails应用程序,但在语言方面我是一个新手(我是Ruby& Rails的新手)。在查看源文件时,我提出了一些问题:

class Card < ActiveRecord::Base
    class CardRenderer < AbstractController::Base
        include AbstractController::Rendering
        include AbstractController::Helpers

        self.view_paths = Rails.application.config.paths["app/views"]

        helper_method :res_url

        def print(_card, _template)
             @card = _card
             render template: "prints/#{_template}.html"
        end

        protected
            def res_url(_res_name)
                "#{Rails.root}/app/views/prints/res/#{_res_name}"
            end
     end
     .......
     .......
     .......
end

我看到一个模型在另一个类中包含了一个classe 你有这个语言功能的名字吗?

如何从模型实例中调用此类? 例如来自控制器(显然这不起作用):

@card::CardRenderer.new.print(@card, @template)

模型类中的类具有呈现视图的函数

我可以从控制器中使用这个功能吗? 例如来自控制器(显然这也不起作用)

render Card::CardRenderer.new.print(@card, @template)

理想的是我读了一本书!我会做到的!但在这些日子里我不能(计时问题)。

1 个答案:

答案 0 :(得分:1)

您是否有此语言功能的名称?

“嵌套类”,我认为

如何从模型实例中调用此类?

@card.class::CardRenderer应该有效

模型类中的类具有呈现视图的函数。我可以在控制器中使用此功能吗?

阅读整件事情从头到尾: http://guides.rubyonrails.org/layouts_and_rendering.html


P.S。我怀疑该应用程序的当前设计完全违背了模型 - 视图 - 控制器的想法