我必须编辑一个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)
理想的是我读了一本书!我会做到的!但在这些日子里我不能(计时问题)。
答案 0 :(得分:1)
您是否有此语言功能的名称?
“嵌套类”,我认为
如何从模型实例中调用此类?
@card.class::CardRenderer
应该有效
模型类中的类具有呈现视图的函数。我可以在控制器中使用此功能吗?
阅读整件事情从头到尾: http://guides.rubyonrails.org/layouts_and_rendering.html
P.S。我怀疑该应用程序的当前设计完全违背了模型 - 视图 - 控制器的想法