ruby-on-rails - RoR ActiveRecord::Base uniq 在尝试 uniq.pluck(:column_name) 时未定义

标签 ruby-on-rails activerecord uniq

所以我有一个非常简单的模型,叫做 Movies。我正在尝试添加一个类方法,该方法返回分配给数据库中电影的评级的整洁列表。看来我想调用 Movie.uniq.pluck(:rating)

所以我添加了这样的方法:

class Movie < ActiveRecord::Base

    def self.all_ratings
        self.uniq.pluck(:rating)
    end

end

但它就是行不通。当它运行时,我得到:undefined methoduniq' for #`... 我试过包括 ActiveRecord::Calculations 但这似乎也无济于事。我还在'def ...'之后放置了一个断点来检查自己有哪些方法,果然,uniq不在其中...

我显然做错了什么,但我不太明白它是什么。

有人有什么想法吗?

ó_ò

最佳答案

uniq 是一种 Ruby 方法,甚至可用于 1.8.7。问题是 uniq 是一个 Array 方法。

因此您可能需要在类似Movie.all 的对象上调用uniq

关于ruby-on-rails - RoR ActiveRecord::Base uniq 在尝试 uniq.pluck(:column_name) 时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847099/

相关文章:

sql - 使用 LIMIT 进行慢速查询(Active Record `first` 方法)

ruby-on-rails - ruby on Rails 的 pjax 替代品

ruby-on-rails - ActiveRecord 查找连接和关联?

linux - 获取两个大文件的交集和差异

sed - 如何删除文件中的重复行...AWK、SED、UNIQ 不适用于我的文件

ruby-on-rails - 如何将多个对象传递到rails中的邮件/电子邮件内容中

ruby-on-rails - 为亚马逊 s3 添加载波初始化程序后无法启动 Rails 应用程序

ruby-on-rails - 在单个继承表和另一个表中的类之间建立多对多关联

php - Codeigniter Active Record - 返回另一个表中的行与条件匹配的结果

linux - 如何从Linux中的文件中获取唯一出现