Ruby on rails 在rails中使用GrapeAPI生成HTML
我有一个需求,需要从我的一个API生成/输出HTML标记。我正在使用GrapeAPI,但找不到丢弃HTML标记的方法。我可以将内容类型指定为text/html并创建一个html标记,但有没有更好的方法来实现这一点,比如呈现类似于以下内容的模板:Ruby on rails 在rails中使用GrapeAPI生成HTML,ruby-on-rails,grape-api,Ruby On Rails,Grape Api,我有一个需求,需要从我的一个API生成/输出HTML标记。我正在使用GrapeAPI,但找不到丢弃HTML标记的方法。我可以将内容类型指定为text/html并创建一个html标记,但有没有更好的方法来实现这一点,比如呈现类似于以下内容的模板: render template:'my_template' locals: {:data => data} “我的模板”(HTML)可以处理页面的外观?render在GrapeAPI中是一个未定义的方法,因此不确定我还可以使用哪些其他东西?我
render template:'my_template' locals: {:data => data}
“我的模板”(HTML)可以处理页面的外观?render在GrapeAPI中是一个未定义的方法,因此不确定我还可以使用哪些其他东西?我认为使用仅API的框架来呈现HTML是一个非常糟糕的主意 不过,您应该能够使用
:txt
内容类型来简单地呈现您所描述的字符串
您可以使用ERB,因为它是标准库的一部分,并且非常易于使用:
require "erb"
class Template
attr_reader :name, :data
def initialize(name, data)
@name = name
@data = data
end
def build
raw = File.read("templates/#{name}.erb")
ERB.new(raw).result(binding)
end
end
据我所知,grape自动使用实体的to_s
方法来渲染:txt
,因此您可以在模型中实现如下内容:
def to_s
Template.new(self.class.to_s.downcase, self)
end
也可以注册一个html内容类型并编写某种格式化程序来完成这类工作