如何从我的数据库中检索我的评级

时间:2016-07-27 19:14:13

标签: ruby-on-rails ruby

如何检索我的收视率" [' G'' PG',' PG-13',&# 39; R']"从我的数据库通过我的Movie类中的类方法?我的数据库包含一个电影列表,其中行包含"标题","评级","描述","发布日期"。

4 个答案:

答案 0 :(得分:3)

要像所提到的那样在单个阵列中获得所有电影的评分,只需使用:

Movie.pluck(:ratings) #assuming column name ratings

这会产生类似

的结果
['G','PG','PG-13','R']

如果您还想知道哪部电影具有哪个等级,您可以修改以下代码:

Movie.pluck(:id, :ratings)

其结果如下:

[[1,"PG"], [2,"PG-13"], [3,"G"]]

有关更多信息,请访问此链接

http://apidock.com/rails/ActiveRecord/Calculations/pluck

答案 1 :(得分:0)

如果您的评分存储在数组中,那么您必须编写一个函数来分隔以下所有内容:"['']"。创建一个枚举或给你一个ID评级会很简单,所以当你发布一部电影并想给它一个评级时你可以通过调用它的ID或枚举值来调用它。

答案 2 :(得分:0)

从您标记了rails并列出听起来像桌面结构的事实,我将假设您正在使用Rails' ORM ActiveRecord和postgresql数据库对吗?如果是这样,您可以使用命令Movie.pluck(:ratings)访问您的评分。这应该获取您的Movies表的评级列中的所有插入并返回它们的数组。您需要在您的一个MoviesController操作中实现此功能。

答案 3 :(得分:0)

请查看有关获取特定列的文档。特别是de pluck方法。

http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck

所以,你可以这样做:

Movie.pluck(:ratings)

其他选项是使用普通"查询"结构:

@movies = Movie.select('ratings').where(...#some condition)