2010-11-12 2 views
0

у меня есть эти две таблицырельсы - найти соединения нескольких полей под разными названиями

билеты - ID, user_id, manager_id и т.д.

пользователей - ID, first_name и т.д.

user_id и manager_id являются ссылки на пользователи

Использование рельсов - это способ создания поисковой системы, которая извлекает информацию о пользователях и менеджерах (пользователях).

SQL, присоединяется будет выглядеть ABIT, как это -

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? –

+0

рельсы 3. Пользователь has_many: билеты, билеты принадлежит_to: users – Alex

+0

Не могли бы вы объяснить мета-путь, чего вы пытаетесь достичь? – Trip

ответ

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 е находит (до сих пор не знает, как вы хотите создать свою находку):

Ticket.find(x) 
Ticket.all.select{|t|t.manager_id == @manager.id} 
Ticket.find(:all, :conditions => 'manager_id="@manager.id"') 
Смежные вопросы