在 rails 3.2.12 中我得到了这个查询并且它工作正常:
lesson.questions.find :all, :order => DB_RANDOM, :limit => limit
我做了这个,但是我没有取回任何东西
lesson.questions.find().order("DB_RANDOM").limit(:limit).all
我只得到了这个:
2015-05-10 00:55:52 INFO undefined method `find' for "#<ActiveRecord::Associations::CollectionProxy []>":String
还有这个:
lesson.questions.find().order("DB_RANDOM").limit(:limit).all
但后来我得到了这个:
undefined method `question' for #<Lesson:0x00000006a8b550>
什么是正确的方法?
最佳答案
在 rails 4 中你可以通过
在 postgres 中获得随机数lesson.question.order("RANDOM()").limit(limit).all
or
lesson.question.limit(limit).order("RANDOM()").all
在前后放置限制会产生相同的结果。
如果您使用的是 mysql,则使用 RAND 函数。
lesson.question.order("RAND()").limit(limit).all
关于ruby-on-rails - 从 3.2.12 到 4.2.0 的 Rails 查询转换不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145944/