Ruby-on-Rails:渲染帮助:layout => false

Dav*_*vid 5 ruby-on-rails render actionpack

我试图从API访问rails应用程序资源(它发送一个Application/XML GET请求),我不想解析XML文件.

在我的资源控制器中,我有以下内容:

def get_resource
    @my_resource = Resources.new
    render :xml => @my_resource
end
Run Code Online (Sandbox Code Playgroud)

它按预期生成xml文件.如果我用以下代替:

render :layout => false
Run Code Online (Sandbox Code Playgroud)

我的API报告"模板丢失"错误.我也尝试过以下方法:

render :xml => @identity, :layout => false
Run Code Online (Sandbox Code Playgroud)

但无论如何页面呈现.什么是正确的方法?

Dan*_*nne 9

渲染:xml时,它不使用布局,因为它也不使用任何模板.通过指定:layout => false,您可以告诉rails查找不存在的模板.

现在,如果您不想解析xml文件,那么您有几个选择.或者:

render :json => @my_resource
Run Code Online (Sandbox Code Playgroud)

要么

render :text => "My resource name is: #{@my_resource.name}" # Whatever you want
Run Code Online (Sandbox Code Playgroud)

这一切都取决于您希望结果的外观,API期望接收的内容.因此,如果您没有找到任何有用的内容,请举例说明您希望响应的外观.