我正在尝试从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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top