rails中的方法链(逐步调用方法)

问题描述 投票:0回答:1

我试着找到如何在Ruby(Rails应用程序)中实现这样的方法链的最佳方法

class Foo
  attr_accessor :errors
  attr_accessor :shared_params

  def initialize(..)
    ..
  end

  def call 
    check_params
    calc_smthing
    write_in_db
  end

  prviate

  def check_params
    ..
  end

  def calc_smthing
    ..
  end

  def write_in_db
    ..
  end
end

主要观点:

  • 如果某些事情失败(或者没有失败但是返回错误),在某些步骤中其他步骤不会调用,当然我不想添加多个ifs来检查状态并考虑如何在一个地方实现它
  • 我需要保存错误
  • 找到方法之间共享参数的方法会很棒。

我可以用ifs以简单(丑陋)的方式编写,但我试图找到更优雅的方式或模式,因为我认为问题并不那么具体。

提前致谢。

ruby-on-rails ruby ruby-on-rails-4 design-patterns
1个回答
0
投票

将错误和共享属性保存到变量(现在如何操作)。联合方法链的方法:

def call 
  check_params && calc_smthing && write_in_db
end

def valid?
  errors.blank?
end
© www.soinside.com 2019 - 2024. All rights reserved.