Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中使用GrapeAPI生成HTML_Ruby On Rails_Grape Api - Fatal编程技术网

Ruby on rails 在rails中使用GrapeAPI生成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中是一个未定义的方法,因此不确定我还可以使用哪些其他东西?我

我有一个需求,需要从我的一个API生成/输出HTML标记。我正在使用GrapeAPI,但找不到丢弃HTML标记的方法。我可以将内容类型指定为text/html并创建一个html标记,但有没有更好的方法来实现这一点,比如呈现类似于以下内容的模板:

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内容类型并编写某种格式化程序来完成这类工作