Как определить отношение в модели рельсов, где модель имеет внешние ключи, которые ссылаются на статические значения в другой таблице - PullRequest
0 голосов
/ 31 октября 2018

У меня есть пользовательские объекты, которые должны ссылаться на статические значения в сторонних таблицах. У пользователей есть выбор моды и выбор еды. Таблицы выбора моды и выбора еды - это просто список строк, совпадающих с идентификатором. Хранение значений в отдельном файле (CSV, JSON) не подходит для моего бизнеса.

Я определил пользовательский метод:

def fashion_choice
  FashionChoice.find_by(id: self.fashion_choice_id)
end

Это прекрасно работает, но дает мне проблему N + 1, потому что я не могу использовать includes в моих запросах ActiveRecord из-за связи, определяемой в пользовательском методе.

Мне известно, что я могу использовать что-то вроде own_to в пользовательской модели, чтобы сообщить rails, что ключ находится в таблице Users, но странно говорить, что пользователь принадлежит моде. Есть ли лучший способ сделать это, или я просто должен сделать это идиоматическим способом Rails?

Таблица пользователей:

id name fashion_choice_id food_choice_id

Стол FashionChoice:

id name
1  Halloween
2  Holiday
3  Beach Santa

Таблица FoodChoice аналогична.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...