Что такое «как» в модели ruby on rails?

#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
  

Что-то хранит как класс, так и идентификатор того, с чем он связан, позволяя ему быть полиморфным.