У меня есть следующие модели в приложении Rails. Эта установка работала нормально, так как обычно, когда я хотел бы добавить нового VendorPromo к поставщику, в раскрывающемся списке доступных промо на выбор. Теперь я разрешаю создание нового VendorPromos через API. Однако эта текущая настройка позволит создать VendorPromo с любым promo_id, даже если он не существует в Promo. Я видел belongs_to :promo, foreign_key: :promo
и знаю, что вы можете добавить ограничение внешнего ключа через БД. Что я хотел бы знать, так это разницу между этими двумя подходами, и если один из них лучше?
Редактировать: я признаю, что ограничения приложения отличаются от ограничений БД, но когда я применяю ограничение в приложении, т.е. belongs_to :promo, foreign_key: :promo
похоже, что на самом деле это ограничение вообще не применяется. В частности, я могу создать новый VendorPromo с promo_id, скажем, 13, хотя Promo имеет только идентификаторы от 1 до 8.
class Vendor
has_many :vendor_promos
end
class VendorPromo
belongs_to :vendor
belongs_to :promo
end
class Promo
end