在控制器中搜索多个条目(哈希值)

时间:2012-12-04 12:40:43

标签: ruby-on-rails-3 hash

这是我正在尝试做的事情:

我有三张桌子:

预约用户和股票 - 我想为用户分配一个约会。 所以我到目前为止所做的是我在约会和用户之间创建了一个表 存储用户被分配到的user_id和appointment_id。 我可以在我的appointmentments_controller中搜索共享中的特定约会 与

@shares = Shares.find(:all, :conditions => { :appointment_id => @appointment.id })

之后我得到一个哈希@shares,看起来像这样:

[#<Shares id: 10, user_id: 3, appointment_id: 1, created_at: "2012-12-04 10:24:16", updated_at: "2012-12-04 10:24:17">, #<Shares id: 12, user_id: 2, appointment_id: 1, created_at: "2012-12-04 10:28:38", updated_at: "2012-12-04 10:28:39">] 

我现在要做的是在users表中查询以查找属于我在共享哈希中找到的user_ids的用户名。 我尝试过这样的事情:

@shares.each do |s|
@participants = User.all(:conditions => {:id => s.user_id})
end

但它不起作用,因为每次循环开始时参与者哈希都会被覆盖... 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

@shares = Shares.find(:all, :conditions => { :appointment_id => @appointment.id })
@participants = User.all(:conditions => ["id IN (?)", @shares.map{|s| s.user_id}.compact])