Rails 6 monads模式匹配只获取成功/失败



是否有任何内置或一些漂亮的方式来获取仅成功或失败的结果从单结果数组?

state
=> [Failure("12345 Product code is not valid"), Success("eiowruqoiu Backbone Product created")]

,

state[0].class
=> Dry::Monads::Result::Failure
state[1].class
=> Dry::Monads::Result::Success
state.grep(Dry::Monads::Result::Failure)
state.grep(Dry::Monads::Result::Success)

state.select { |s| s.is_a?(Dry::Monads::Result::Failure) }
state.select { |s| s.is_a?(Dry::Monads::Result::Success) }

或使用success?/failure?单子方法

state.select(&:success?)
state.select(&:failure?)
state.reject(&:success?)
state.reject(&:failure?)

最新更新