尝试使用Attributes 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
答案 0 :(得分:0)
Tom,将自定义类型添加到相应类的属性中。这将告诉Rails在处理关系时如何在两个不同的类上处理该属性。
class Other < ActiveRecord::Base
attribute :my_attr, :my_custom
belongs_to :my_class, primary_key: :my_attr
end