2011-03-15 60 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