所以我在我的RoR应用程序中生成XML数据以供外部源使用。我控制器中的方法如下......
def allOffers
@ridesall = Ride.find(:all)
respond_to do |format|
format.xml
end
end
我有一个看起来像这样的allOffers.xml.builder文件......
xml.instruct!
xml.rides do
@ridesall.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
除了一件事之外,它的效果很好......它根据ID命令xml。如何让xml随机排序?
我可以简单地改变
@ridesall = Ride.find(:all)
到
@ridesall = Ride.find(:all, :order => :random)
由于
答案 0 :(得分:1)
您使用的数据库是什么?您可能需要依赖RDBMS特定的随机函数。例如在mysql中
:order => 'rand()'
或在postgresql中
:order => 'random()'
答案 1 :(得分:1)
您可以随机播放阵列。这适用于任何类型的数据库。
@ridesall.shuffle.each do
#...
end
注意:Array#shuffle
是1.8.7的新增内容,因此如果使用Ruby 1.8.6则为require 'backports'
。
答案 2 :(得分:0)
@ridesall.sort_by { |x| rand() }
也适用