当分配为

时间:2015-12-02 07:40:46

标签: ruby-on-rails activerecord aggregation

使用rails 4.0.13

使用

class Shipment < ActiveRecord::Base
    composed_of :weight, 
                  class_name: 'Weight',
                  mapping: [[wight_value, :value], [weight_unit, :unit]],
                  converter: :build
end

我需要在分配时指定一些默认值 shipment.weight = nil

P.S:我不想允许零值,但如果以某种方式通过外部输入来,那么我想分配Weight.new(0)

注意:尝试使用转换器,但在传递nil时失败 喜欢转换器:

Proc.new {|value| Weight.new(value || 0)}

1 个答案:

答案 0 :(得分:0)

使用to_i将nil值转换为整数,如: -

Proc.new {|value| value.blank? ? Weight.new(value.to_i) : Weight.new(value)}