我有这两个表
ticket - id,user_id,manager_id等
users - id,first_name etc
user_id和manager_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
谢谢,Alex
答案 0 :(得分: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"
答案 1 :(得分:0)
您的模型应设置为:
#ticket.rb
belongs_to :user
belongs_to :manager
#manager.rb
has_many :tickets
#user.rb
has_many :tickets
查找示例(仍不确定如何设置查找):
Ticket.find(x)
Ticket.all.select{|t|t.manager_id == @manager.id}
Ticket.find(:all, :conditions => 'manager_id="@manager.id"')