2010-11-12 34 views
0

我有這兩個表軌 - 尋找不同的名字

門票連接多個領域 - ID,USER_ID,經理標識等

用戶 - ID,FIRST_NAME等

USER_ID和經理標識是兩個引用用戶

使用rails是否有創建查找的方法,可以獲取用戶信息和管理員(用戶)信息。

的SQL連接看起來升技這樣的 -

LEFT JOIN users ON users.id = tickets.user_id 

LEFT JOIN users as managers ON managers.id = tickets.manager_id 

預期結果

ticket: 
    subject: something interesting 
    user_id: 1 
    manager_id: 3 
    user: 
    id: 1 
    name: Frank 
    manager: 
    id: 3 
    name: Alex 

謝謝,亞歷克斯

+1

這是Rails 2還是3? Ticket和User模型中定義的關係是什麼? – 2010-11-12 16:14:39

+0

rails 3.用戶has_many:門票,門票belongs_to:用戶 – Alex 2010-11-12 16:27:09

+0

您能以元方式解釋您要完成的任務嗎? – Trip 2010-11-12 16:27:17

回答

1

如果我理解正確的話,你應該使用類似:

class Ticket < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :manager, :class_name => "User" 
end 

class Ticket < ActiveRecord::Base 
    has_many :tickets 
end 

然後你可以使用

@ticket = Ticket.first 
@ticket.user.name >> "Frank" 
@ticket.manager.name >> "Alex" 
0

你的模型應該被設置爲這樣:

#ticket.rb 
belongs_to :user 
belongs_to :manager 

#manager.rb 
has_many :tickets 

#user.rb 
has_many :tickets 

例子o ˚F發現(仍然不知道要如何設置您的發現):

Ticket.find(x) 
Ticket.all.select{|t|t.manager_id == @manager.id} 
Ticket.find(:all, :conditions => 'manager_id="@manager.id"')