У меня есть таблица статусов, которая содержит только поле id и name (Active, Inactive, Pending и т. Д.). Затем у меня есть таблицы, такие как «Пользователи», «Достижения», «Значки», для которых каждый из них содержит внешний ключ status_id. Являются ли ассоциации в моих моделях правильными?Rails Ассоциации для поиска Таблица
class Status < ActiveRecord::Base
has_many :achievements
has_many :badges
has_many :users
end
class User < ActiveRecord::Base
belongs_to :status
end
class Badge < ActiveRecord::Base
belongs_to :status
end
class Achievement < ActiveRecord::Base
belongs_to :status
end
Я борюсь с тем, как правильно читать разницу между has_one и has_many в случае таблицы перекодировки. Я знаю, что пользователь имеет одну компанию и имеет один профиль, и у компании много пользователей, но это кажется мне обратным.
Спасибо за подробный ответ. Что касается belongs_to ... Я прочитал некоторую документацию на сайте rails, в которой говорится, что таблица, содержащая внешний ключ, содержит свойство belongs_to в модели. – user1084769
Это правда, но вопрос в том, нужна ли вам семантика, введенная belongs_to? то есть пользователь имеет один статус, но статус принадлежит пользователю? Статус не принадлежит пользователю, статус может быть назначен нескольким пользователям, поэтому вам, вероятно, никогда не понадобится семантика запросов, которая говорит, покажите мне пользователя, который принадлежит этому статусу. – RadBrad
, что на самом деле было очень хорошим способом объяснить это. большое спасибо! – user1084769