Rails帮助重写rails随机化

时间:2011-03-18 19:07:38

标签: ruby-on-rails ruby ruby-on-rails-3

我该如何重写?

@bannerkat = Konkurrancer.where("kategori_id = '#{@kategor}'").order('rand()').first

这样的事情@banner = Konkurrancer.all[rand(Konkurrancer.all.size)]

我试过这个:

@bannerkat = Konkurrancer.all[rand(Konkurrancer.where("kategori_id = '#{@kategor}'"))]

我如何阻止SQL注入?

2 个答案:

答案 0 :(得分:1)

这应该有效

@items= Konkurrancer.where("kategori_id = '#{@kategor}'")
@random_item = @items[rand(@items.size)] 

答案 1 :(得分:1)

使用SQL ORDER BY rand()非常慢。请改为尝试:Konkurrancer.first :offset => ( Konkurrancer.count * rand ).to_i