如何根据rails中的ActiveRecord_Relation获取ActiveRecord_Relation?

时间:2016-01-17 01:26:31

标签: ruby-on-rails activerecord rails-activerecord

我有模型response = JSON.parse(result.responseText); console.log(response.files[0].name); User

User.rb

Course

Course.rb

has_many :courses

如果我有一个ActiveRecord_Relation belongs_to :user ,则会显示一个用户列表。

如何获取ActiveRecord_Relation @users,其中包含基于@courses的课程列表

我知道可以逐一完成@users。但有更简单的方法吗?比如@users.each do |user|

2 个答案:

答案 0 :(得分:2)

您可以使用Ruby中的#flat_map方法:

@users.flat_map(&:courses)

答案 1 :(得分:0)

flat_map是一个很好的解决方案,但不会给你一个ActiveRecord :: Relation。

如果你想要一个ActiveRecord :: Relation,你可以像这样构建@courses

@courses = Course.where(user_id: @users.select(:id))