У меня есть класс ActiveHash, который я хотел бы использовать в полиморфной ассоциации:
class Person < ActiveRecord::Base
extend ActiveHash::Associations::ActiveRecordExtensions
belongs_to :placeable, polymorphic: true
end
class Country < ActiveHash::Base
include ActiveHash::Associations
has_many :people, as: :placeable
self.data = [
{ id: 1, name: 'US' },
{ id: 2, name: 'Canada' }
]
end
При установке полиморфной ассоциации он сохраняется в базе данных, устанавливая полиморфный тип на ActiveHash::Base
.При доступе к нему позже я получаю ошибку undefined method 'arel_table'
.
person = Person.create
person.placeable = Country.last
person.save
person
=> #<Person id: 1, placeable_id: 2, placeable_type: "ActiveHash::Base">
person.placeable
NoMethodError: undefined method `arel_table' for ActiveHash::Base:Class
from (irb):2
Я также пытался установить полиморфный тип на Country
, но я получаю ту же ошибку для класса Country.
Неполиморфный belongs_to
, кажется, работает нормально.