Я столкнулся с проблемой при попытке использовать API атрибутов, чтобы разрешить пользовательский тип в моих моделях ActiveRecord.Я могу заставить все работать, пока я не попытаюсь получить доступ к отношениям.Когда я это делаю, я получаю ошибку TypeError: can't quote
.Кажется, это вызвано ActiveRecord
, когда он пытается «процитировать» атрибут.Я предполагаю, что он сериализует атрибут перед цитированием.Кто-нибудь видит что-то, чего мне не хватает?
Модель:
class MyClass < ActiveRecord::Base
attribute :my_attr, :my_custom
has_many :others, primary_key: :my_attr
end
Тип атрибута:
class MyCustomType < ActiveRecord::Type::String
def deserialize(value)
MyCustom.new(value)
end
def cast(value)
MyCustom.new(value)
end
def serialize(value)
value.to_s
end
end