Ruby-on-on-rails:帮助渲染:布局=> false
-
30-09-2019 - |
题
我正在尝试从API访问Rails App资源(它发送应用程序/XML获取请求),我不必分析XML文件。
在我的资源控制器中,我有以下内容:
def get_resource
@my_resource = Resources.new
render :xml => @my_resource
end
根据预期生产XML文件。如果我替换为:
render :layout => false
我的API报告了“模板丢失”错误。我也尝试了以下内容:
render :xml => @identity, :layout => false
但是页面呈现出来。正确的方法是什么?
解决方案
当您渲染:XML时,它不使用布局,因为它也不使用任何模板。通过指定:布局=> false,您告诉Rails寻找不存在的模板。
现在,如果您不想解析XML文件,那么您有一些替代方案。任何一个:
render :json => @my_resource
或者
render :text => "My resource name is: #{@my_resource.name}" # Whatever you want
这完全取决于您希望结果的外观,API期望得到的。因此,如果您找不到任何有用的东西,请举一个示例,说明您希望响应的外观。
其他提示
def get_resource
@my_resource = Resources.new
respond_to do |wants|
wants.xml { render :xml => @my_resource }
wants.html { render :layout => false }
end
end
阅读本文: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-work-in-the-rails-controllers/
不隶属于 StackOverflow