ruby-on-rails - 从 3.2.12 到 4.2.0 的 Rails 查询转换不返回任何内容

标签 ruby-on-rails ruby ruby-on-rails-4

在 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/

相关文章:

ruby-on-rails - 预编译 Assets 失败且 rake 中止

ruby-on-rails - Ruby on Rails 4 和 cocoon gem : How to interrupt deletion on cocoon:before-remove

ruby-on-rails - 在 Rails View 中将变量分配给用户输入

Ruby:我怎样才能让一个散列接受多个键?

ruby - 使用 bundler 为不同平台加载不同版本的 gem

ruby-on-rails - Rails 更新 4.1.0 后,next 方法 (Class.first) 不起作用

ruby-on-rails - rails 协会 :autosave doesn't seem to working as expected

ruby-on-rails - 如何简化 Rails 3 中的 "render_to_string"?

ruby-on-rails - ruby/ruby on rails 内存泄漏检测

ruby - 如何获取适用于 ruby​​ 1.9.1 的 to_yaml 方法的格式化选项?