0

Я не хорошо разбираюсь в ассоциациях и не имею обширных знаний в этом разделе.Нужна помощь в создании ассоциаций для моего сценария

Ниже мой вариант использования:
Есть две модели:

  • Сотрудник
  • Рейтинг

-> Сотрудник (как команда свинца) может дать рейтинги его члены команды (работник)

Будет ли неплохо принимать только has_many взаимосвязь betw een employee to rating? Кроме того, я немного смущен, как я смогу показать рейтинги команды и их членов в рейтинге Team Lead сеанса входа в систему отдельно.

Пожалуйста, помогите.

ответ

1

Таблица ratings должна содержать giver_id и колонку employee_id. Тогда:

class Employee < ActiveRecord::Base 
    has_many :given_ratings, foreign_key: :giver_id, class_name: Rating 
    has_many :ratings 
end 

class Rating < ActiveRecord::Base 
    belongs_to :giver, class_name: Employee 
    belongs_to :employee 
end 

Тогда для любого сотрудника, должно работать:

team_lead = # fetch employee however 
team_lead.ratings # ratings given TO this employee 
team_lead.given_ratings # ratings given BY this employee 
+0

Спасибо. Но я получаю некоторую ошибку на team_lead.given_ratings.count. Зарегистрируйтесь здесь http://goo.gl/gzwSts. Вы не могли бы проверить? – ram

+0

чувак вам нужно добавить столбец 'giver_id' в ваши рейтинги. и пометьте мой ответ как выбранный, если он ответит на ваш вопрос. – Humza

+0

Чувак, ты прав :) Спасибо. – ram