AnA*_*ice 0 ruby ruby-on-rails ruby-on-rails-3
我有以下两种型号:
Projects, has_many projects
Users belong_to Projects
@project = Project.find(1)
@project.users --- outputs a lot of users
Run Code Online (Sandbox Code Playgroud)
我希望能够做到以下几点:给出一个说3个项目(1,4,11)的列表,迭代每个项目的用户并与三个项目中的所有用户一起构建一个对象,首先组合,而不是复制.
这是我到目前为止,但它没有正常工作:
@aggregate_users = Array.new
params[:project_list].split(/, ?/).each do |project|
@project_temp = Project.find(project)
@project_temp.users.each do |user|
@aggregate_users << user
end
end
Run Code Online (Sandbox Code Playgroud)
建议?另外,如何避免添加重复用户?谢谢
纯Ruby方法:
@users = Project.find(project_ids).map(&:users).flatten.uniq
Run Code Online (Sandbox Code Playgroud)
SQL方法(正如您所说的用户属于项目):
@users = User.where(:project_id => project_ids)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |