Ruby on rails `Model.first(:order=>;';random()';)始终返回相同的对象
当我尝试这样做时:Ruby on rails `Model.first(:order=>;';random()';)始终返回相同的对象,ruby-on-rails,ruby,activerecord,random,Ruby On Rails,Ruby,Activerecord,Random,当我尝试这样做时: questions = Array.new 2.times do question = Question.first(:order => 'random()') questions << question end 它返回一个包含两个相同对象的数组,但在我的questions数组中需要两个不同的对象。我做错了什么?您可以尝试创建一个返回随机记录的方法: class Question < ActiveRecord::Base ... de
questions = Array.new
2.times do
question = Question.first(:order => 'random()')
questions << question
end
它返回一个包含两个相同对象的数组,但在我的
questions
数组中需要两个不同的对象。我做错了什么?您可以尝试创建一个返回随机记录的方法:
class Question < ActiveRecord::Base
...
def self.random
if (c = count) != 0
find(:first, :offset =>rand(c))
end
end
...
end
类问题rand(c))
结束
结束
...
结束
然后使用:
questions = Array.new
2.times do
question = Question.random
questions << question
end
questions=Array.new
2.5倍
问题=question.random
问题该错误可能是在执行问题时出现的。首先
-显然它没有像您预期的那样创建一个新的问题
。我怀疑您在调用问题时得到了一个对象。首先
,它只是保留查询以供以后检索。您可以参考此链接获取随机数据记录:
questions = Array.new
2.times do
question = Question.random
questions << question
end