Хранить языки для модели - PullRequest
0 голосов
/ 22 октября 2019

Вот контекст: у меня есть Users, и я хочу сохранить то, что languages они говорят.

Как мне это сделать? Создать Languages таблицу с ассоциацией has_many для Users? Сохранить его как hstore в колонке языков пользователя?

Кроме того, я использую simple-form, я хотел бы заполнить выбор (:multiple, потому что User может говорить на нескольких языках) со всемиязыки, есть идеи, как этого добиться? Должен ли я создать константу со всеми языками? Может быть, драгоценный камень, который выполняет это?

Я провел исследование, но не смог найти ничего подходящего для этой потребности.

1 Ответ

1 голос
/ 22 октября 2019

Похоже на базовое отношение M: M между User и Language (которое подробно описано в руководстве Ассоциации активных записей ).

Как насчет Userмодель как:

class User < ApplicationRecord
  has_many :user_languages
  has_many :languages, through: :user_languages
end

И модель Language как:

class Language < ApplicationRecord
  has_many :user_languages
  has_many :users, through: :user_languages
end

И модель UserLanguage как:

class UserLanguage < ApplicationRecord
  belongs_to :user
  belongs_to :language
end

Я думаю, вы бызасеять свой languages стол.

...