Ruby on rails 基于数据库生成多个XML文件

Ruby on rails 基于数据库生成多个XML文件,ruby-on-rails,xml,ruby,xml-builder,Ruby On Rails,Xml,Ruby,Xml Builder,是否有人可以提供一个使用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.

是否有人可以提供一个使用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
以下是我的路线中唯一的路线。rb

map.resources :rides
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
这很好,但是我如何创建一个新文件,其中包含游戏中的最后一个元素呢

谢谢


编辑:从format.rss更改为format.xml

我不完全确定您想要实现什么,但您可以在控制器中使用另一种方法返回最后一次驾驶:

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
文件,为
列表添加新的操作:

map.resources :rides, :collection => { :last => :get }
  • 这样,您就可以使用

或者,您可以简单地在控制器的
索引
方法中进行
find
调用,使其有条件地获取所有骑乘或最后一次骑乘。在这种情况下,您应该能够重新使用现有的
index.xml.builder
视图模板,因为它将只输出一个集合,碰巧只包含一次骑乘。

我不完全确定您试图实现什么,但您可以在控制器中使用另一种方法返回最后一次骑乘:

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
文件,为
列表添加新的操作:

map.resources :rides, :collection => { :last => :get }
  • 这样,您就可以使用

或者,您可以简单地在控制器的
索引
方法中进行
find
调用,使其有条件地获取所有骑乘或最后一次骑乘。在这种情况下,您应该能够重新使用现有的
index.xml.builder
视图模板,因为它将只输出一个碰巧只包含一次骑乘的集合。

是的,这正是我要做的。它应该会起作用,但它永远找不到它的路线。因此,这将可以通过web从say或??访问,这取决于
config/routes.rb
文件的外观。请编辑您的问题以包含其内容。我想我需要在routes.rb中添加另一行,以便它识别控制器中的最新方法?此外,当我转到rides/latest时,我会出现以下错误。。。。未知操作没有响应显示的操作。操作:创建、索引、最新和最新非常感谢您的帮助!我知道这可能只是一个路线问题……是的,这正是我想要做的。它应该会起作用,但它永远找不到它的路线。因此,这将可以通过web从say或??访问,这取决于
config/routes.rb
文件的外观。请编辑您的问题以包含其内容。我想我需要在routes.rb中添加另一行,以便它识别控制器中的最新方法?此外,当我转到rides/latest时,我会出现以下错误。。。。未知操作没有响应显示的操作。操作:创建、索引、最新和最新非常感谢您的帮助!我知道这可能只是一个路线问题。。。