0

これが私がやろうとしていることです:

私は3つのテーブルを持っています:

アポイントメントのユーザーと共有-ユーザーをアポイントメントに割り当てたいのですが。これまで私が行ったことは、予定とユーザーの間に、ユーザーが割り当てられているuser_idとappointment_idを格納するテーブルを作成したことです。私は私のappointments_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">] 

ここで実行したいのは、ユーザーテーブルでクエリを実行して、共有ハッシュで見つけたuser_idsに属するユーザー名を見つけることです。私はこのようなものでそれを試しました:

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

ただし、ループが開始するたびに参加者のハッシュが上書きされるため、機能しません...ご協力いただきありがとうございます

4

1 に答える 1

1
@shares = Shares.find(:all, :conditions => { :appointment_id => @appointment.id })
@participants = User.all(:conditions => ["id IN (?)", @shares.map{|s| s.user_id}.compact])
于 2012-12-04T12:50:29.940 に答える