Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从数据库中检索我的评分_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何从数据库中检索我的评分

Ruby on rails 如何从数据库中检索我的评分,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何通过电影类中的class方法从我的数据库中检索我的评级,比如“['G'、'PG'、'PG-13'、'R']”?“我的数据库”包含一个电影列表表,其中的行包含“标题”、“分级”、“描述”、“发布日期”。如果分级存储在数组中,则必须编写一个函数来分隔以下所有内容:“[””。创建一个枚举或给你一个ID评级是非常简单的,所以当你发布一部电影并想要给它评级时,你可以通过调用它的ID或枚举值来调用它。从你标记了rails并列出了听起来像表结构的东西这一事实来看,我假设你正在使用rails的ORM Act

如何通过电影类中的class方法从我的数据库中检索我的评级,比如“['G'、'PG'、'PG-13'、'R']”?“我的数据库”包含一个电影列表表,其中的行包含“标题”、“分级”、“描述”、“发布日期”。

如果分级存储在数组中,则必须编写一个函数来分隔以下所有内容:
“[””
。创建一个枚举或给你一个ID评级是非常简单的,所以当你发布一部电影并想要给它评级时,你可以通过调用它的ID或枚举值来调用它。

从你标记了rails并列出了听起来像表结构的东西这一事实来看,我假设你正在使用rails的ORM ActiveRecord和postgresql数据库,对吗?如果是这样,您可以使用命令
Movie.pluck(:ratings)
访问您的评级。这将获取电影表的收视率列中的所有插入内容,并返回它们的数组。您需要在一个MoviesController操作中实现这一点。

要获得单个阵列中所有电影的评级,如您所述,只需使用:

Movie.pluck(:ratings) #assuming column name ratings
这将产生如下结果:

['G','PG','PG-13','R']
如果您还想知道哪部电影有哪些分级,则可以将代码修改为以下内容:

Movie.pluck(:id, :ratings)
其结果将类似于:

[[1,"PG"], [2,"PG-13"], [3,"G"]]
Movie.pluck(:ratings)
有关更多信息,请访问此链接


关于获取特定列,请查看此文档。特别是de
pull
方法

因此,您可以执行以下操作:

[[1,"PG"], [2,"PG-13"], [3,"G"]]
Movie.pluck(:ratings)
另一个选项是使用正常的“查询”结构:

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

是 啊这确实有效,但我得到了这个结果[“G”,“R”,“R”,“PG-13”,“PG-13”,“R”,“G”,“PG”,“PG”,“PG”,“G”]。。但这并不意味着重复一个特定的评级两次或两次以上。我该怎么做呢?我想
Movie.pulk(:ratings).uniq应该可以工作,这样它就可以将你的数组简化为独特的元素。