2010-02-22 58 views
3

我真的很困惑如何在rails上使用ruby中的生成器模板。我有一些簡單的控制器代碼:如何在rails上呈現ruby中的.builder模板?

class ProductsController < ApplicationController 

    def index 
    @products = Product.all 
    respond_to do |format| 
     format.html # index.html.erb 
     format.xml # index.builder 
    end 
    end 

end 

但這似乎並不奏效。我的index.builder文件如下所示:

xm = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2) 
xm.instruct!   
    xm.index{ 
    @index.each do |i| 
     xm.country(i.country.name) 
     xm.value(i.value) 
     xm.year(i.year) 
    end 
    } 

但我不斷收到空白答覆。看起來我並不理解這裏的根本。

回答

8

重命名index.builderindex.xml.builder然後XML對象是index.builder已經可用,所以你可以調整你的建設者文件看起來像這樣:

xml.instruct! 
xml.posts do 
    @products.each do |product| 
    xml.product do 
     xml.title product.title 
     xml.body product.body 
     xml.price product.price 
    end 
    end 
end 

這裏更多:http://danengle.us/2009/05/generating-custom-xml-for-your-rails-app/