Trailblazer在通过:populator

时间:2018-10-30 12:44:47

标签: ruby trailblazer

所以我有我的改革对象,并且我想在验证之前解析我的字符串数据,以便能够使用干燥验证 required(:my_field).filled(gt?: 0)

为此,我使用填充器 property :membership_fee, populator: MyPopulator

我的问题是访问和解析改革对象采用的数据的最佳方法是什么。

现在,我使用:

property :my_field, populator: lambda { |fragment| fragment[:doc]['my_field'] = BigDecimal.new(fragment[:doc]['my_field']) }

但是我不确定这是否是最好的方法-我的意思是通过fragment [:doc]访问它是最漂亮的方法吗?我不确定到底要在以后的改革中使用什么fragment [:doc]。

2 个答案:

答案 0 :(得分:2)

我将使用干燥验证输入预处理https://dry-rb.org/gems/dry-validation/input-preprocessing/

Response.Redirect(httpWebResponse.ResponseUri.ToString(), true);

答案 1 :(得分:1)

我认为您可以为返回该对象的my_field分配十进制值,例如:

property :my_field, populator: ->(_fragment:, **) do 
  BigDecimal.new(my_field)
end