ruby 如何从Rails中的关联列中选择不同名称

9udxz4iz  于 2023-01-01  发布在  Ruby
关注(0)|答案(1)|浏览(114)

我正在ruby on rails上做一个netflix clone项目,我需要从rails的一个相关列中获取不同的流派名称,也就是说,我从第一个表中得到了流派的"genre_id",从第二个表中得到了流派的"name",那么我怎么才能得到这个"name"呢?

    • 电影桌**
Title | Genre
xxxx  |  1
aaaa  |  1
bbbb  |  1
cccc  |  1
zzzz  |  2
dddd  |  2
eeee  |  2
gggg  |  2
    • 类型表**
id  | name
  1  | Action
  2  | Romance
    • 在模型中**
@action = Movie.where(genre_id: 1)
    • 试试**
<%= @action.select(:genre_id).distinct %>
    • 结果**
#<Movie::ActiveRecord_Relation:0x00007fb908040470>
    • 预期**
Action
    • PS:这些返回错误**
<% @action.first.genre_id.name %>
<% @action.select(:genre_id).first.name %>
<% @action..select(:genre_id).distinct.as_json %> --> returns [{"genre_id"=>1, "id"=>nil}]
<% @action.first.genre_id %> --> returns 1
sq1bmfud

sq1bmfud1#

因为我还不能发表评论,我会回答。它是一个old question,对于Rails 5+,你应该使用以下代码:

@action.distinct.pluck(:genre_id)

它将返回唯一的genre_id的数组。

相关问题