代码之家  ›  专栏  ›  技术社区  ›  Dougui

由rspec触发lambda时的最佳实践

  •  0
  • Dougui  · 技术社区  · 12 年前

    我创建了一个控制器操作,如下所示:

    def update
      manager.update(
        price_change: -> {
          redirect_to new_painting_order_path(painting)
        },
        price_not_change: -> {
          user_path(current_user)
        }
      )
    end
    

    它有效,但我的眼镜有问题。如果价格发生变化或没有变化,我想检查lambda是否被正确调用。我截住了管理器对象。我可以检查哪些参数通过了,但我认为很难检查lambdas。此外,我想检查lambdas中的操作是否正确。

    有这样的最佳实践吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   dax    12 年前

    是什么 :price_change 返回?你能不能把它写成if语句?

    def update
      if manager.update_attributes(params[:manager])
        if price_change?
          redirect_to new_painting_order_path(painting)
        else
          user_path(current_user)
        end
      end
    end
    
    推荐文章