#ruby-on-rails
#ruby-on-rails
Вопрос:
Что такое «как» в модели ruby on rails? и как это работает?
например
has_many :something, as: :reasonable
Является ли оно полиморфным?
Ответ №1:
Да, это полиморфная ассоциация, которая позволяет модели принадлежать нескольким моделям. Должно быть
class Something < ApplicationRecord
belongs_to :reasonable, polymorphic: true
end
И тогда любая модель может иметь многие из них как разумные, не добавляя к чему-либо еще один столбец.
class Thing < ApplicationRecord
has_many :somethings, as: :reasonable
end
class Stuff < ApplicationRecord
has_many :somethings, as: :reasonable
end
Что-то хранит как класс, так и идентификатор того, с чем он связан, позволяя ему быть полиморфным.