2010-06-10 3 views
1

У меня есть таблица «пользователей», в которой хранятся все пользователи моих веб-сайтов, некоторые из которых являются специалистами. Таблица пользователей имеет поле «first_name» и «last_name», а также другие поля.has_many in rails

Другая таблица называется «service_tickets», которая имеет внешний ключ от пользователей, называемых technician_id. Это дает мне настоящую проблему, потому что, когда я смотрю таблицу service_tickets, связанный пользователь на самом деле является специалистом. Вот почему таблица service_tickets имеет поле technician_id, а не user_id.

Я пытаюсь сделать что-то вроде этого:

t = service_ticket.find_by_id(7) 
t.technician.first_name  # notice how I don't do t.user.first_name 

возможно ли это в рельсах? Я не могу заставить его работать ...

Благодарим за помощь!

ответ

3

В вашей модели билетов, вы можете добавить техник отношения как ...

belongs_to :technician, :class_name => "User" 

Он будет использовать модель пользователя в этом случае для technician_id

+0

Спасибо за быстрый ответ, к сожалению, когда Я ввел предложенное ограничение в мою модель, а затем набрал следующий код на мой взгляд: <% @ service_tickets.each do | s | %> <% = s.technician.first_name%> <% end %> Я получаю следующее сообщение об ошибке: "неопределенный метод' first_name»для ноль: NilClass" Любые идеи, что это может быть? Должен ли я помещать в модель пользователя ничего, кроме «has_many: service_tickets»? – dingalingchickenwiing

+0

Кстати, у модели пользователя есть поле под названием «first_name». – dingalingchickenwiing

+0

После перезагрузки сервера ваш код работал! Не обращайте внимания на мои предыдущие сообщения. Спасибо! Кстати, я поставил: foreign_key установка на конце, который я прочитал о сайте, как это: belongs_to: техник,: class_name => "Пользователь",: foreign_key => "technician_id" Это нормально? – dingalingchickenwiing