有人可以提供使用Builder从SQL数据库创建多个XML文件的示例。我可以轻松地创建一个包含整个数据库的文件,如此处...
def index
respond_to do |format|
format.xml { @rides = Rides.find(:all) }
end
end
这将根据我创建的名为index.xml.builder的文件创建一个名为index.xml的文件,该文件包含以下代码
xml.instruct!
xml.rides do
@rides.each do |ride|
xml.item("togive" => ride.togive, "totake" => ride.totake, "howlong" => ride.howlong, "isoffer" => ride.isoffer, "id" => ride.id, "contact" => ride.contact)
end
end
以下是我的routes.rb
中的唯一行map.resources :rides
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
这很好用,但是如何创建一个包含Rides中最后一个元素的新文件?
由于
编辑:从format.rss更改为format.xml
答案 0 :(得分:1)
我不完全确定你想要达到的目标,但你可以在控制器中使用另一种方法来返回最后一次:
def last
respond_to do |format|
format.xml { @last_ride = Rides.last }
end
end
然后在视图模板last.xml.builder
中,您可以使用以下内容:
xml.instruct!
xml.rides do
xml.item("togive" => @last_ride.togive, "totake" => @last_ride.totake etc...)
end
如果您采用这种方法,那么您需要修改config/routes.rb
文件,为list
操作添加新的collection route:
map.resources :rides, :collection => { :last => :get }
或者,您可以简单地在控制器的find
方法中调用index
调用条件,以便它根据需要获取所有游乐设施或最后一次游览。在这种情况下,您应该能够重用现有的index.xml.builder
视图模板,因为它只会输出恰好只包含一次骑行的集合。