我该如何重写?
@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注入?
答案 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