我想为ActiveAttr Gem创建一个自定义的Typecaster。
我有一个Package
课程:
class Package
include ActiveAttr::Model
attribute :quantity, :type => Integer
attribute :detail
attribute :type
attribute :order
def shipping
end
end
我有Order
类
class Order
include ActiveAttr::Model
attribute :id, :type => Integer
def test
end
end
在Package类中我想使用attribute :order, :type => OrderTypecaster
,因为当我创建一个新包(p = Package.new(params['package']
)时,我想自动设置Order id属性。
这可能吗?
我正在使用Rails 3.2.13
韩国社交协会!
答案 0 :(得分:1)
我找到了一种方法来解决我的问题,而无需创建自定义的Typecaster。 在Package类中,我写了两个简单的方法:
def order=(value)
@order = Order.new(value)
end
def order
@order ||= Order.new
end
现在,当我调用Package.new(params ['package'])时,会自动设置订单ID。 我不知道这是否是最好的解决方案,但效果很好,欢迎任何更好的解决方案。 :)
Tks伙计们!