gpt4 book ai didi

ruby - 从另一个类调用 Sinatra erb

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:57 25 4
gpt4 key购买 nike

我需要在我的 Controller 中的一个类中呈现一个 Sinatra erb 模板。不过,我在调用它时遇到了问题。我查看了 Sinatra rdocs 并得出了这个结论:

Sinatra::Templates.erb :template_to_render

当我这样做时,出现以下错误:

undefined method `erb' for Sinatra::Templates:Module

有没有办法从另一个类调用它?

最佳答案

要在其他类(不是 Controller )中模仿 Sinatra Controller 的渲染行为,您可以像这样创建模块:

module ErbRender

include Sinatra::Templates
include Sinatra::Helpers
include Sinatra::ContentFor

def settings
@settings ||= begin
settings = Sinatra::Application.settings
settings.root = "#{ROOT}/app"
settings
end
end

def template_cache
@template_cache ||= Tilt::Cache.new
end

end

这里可能需要调settings.root

使用示例:

class ArticleIndexingPostBody

include ErbRender

def get_body
erb :'amp/articles/show', layout: :'amp/layout'
end

end

这将正确呈现布局包括 content_for

的模板

关于ruby - 从另一个类调用 Sinatra erb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com