2011-03-15 61 views
0

我们的控制器方法之一是由远程系统调用的,它只返回xml。rails 3,如何将变量插入到xml视图中?

我们FOO控制器

我们

def return_some_data 
    @thename = "JOHN DOE" 
     respond_to do |format| 
     format.xml 
     end 
    end 

在我们的意见/富/ return_some_data.xml我们

<Response> 
    <Name>#{@thename}</Name> << that doesnt work 
</Response> 

我想,像HAML的观点,即#{@ thename}会取代,但事实并非如此。

如何将可变数据插入到此XML视图中?

回答

1

您需要为该文件提供一个扩展名,使其由其中一个引擎处理。我想你可以将return_some_data.xml重命名为return_some_data.xml.erb以使其由标准引擎处理。然后,您将不得不使用一个稍微不同的语法为您的嵌入式代码:

<Response> 
    <Name><%= @thename%></Name> 
</Response> 
+0

我想有一个XML引擎虽然,因此一些语法,其中命名文件.XML并使用一些语法将该变量替换? – jpwynn 2011-03-15 08:07:34

+0

@jpwynn ...它与html.html.erb的情况相同,它使嵌入的ruby被放置在html文件中。同样,xml.erb允许嵌入的ruby被放置在xml文件中。 – rubyprince 2011-03-15 08:16:00

+0

啊,是的,现在我明白了。谢谢! – jpwynn 2011-03-15 08:23:09

0

将数据插入到一个XML文档使用Rails 3和HAML,你的看法可能看起来像下面这样。

return_some_data.xml.haml:

!!! XML 
%document 
    != @modelthing.to_xml(:skip_instruct => true) 
    %some_var= @thename 
    %another_var = @thetitle 

返回与导轨2.3,这只是:

%document 
    = @modelthing.to_xml 
    %some_var= @thename 
    %another_var = @thetile