0

次のようなコントローラー アクションを作成しました。

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

動作しますが、私の仕様に問題があります。価格が変更された場合、または変更されていない場合に、ラムダが正しく呼び出されるかどうかを確認したいと思います。manager オブジェクトをスタブ化しました。どのパラメータが渡されているかは確認できますが、ラムダを確認するのは難しいと思います。さらに、ラムダのアクションが正しいかどうかを確認したいと考えています。

このようなことを行うためのベストプラクティスはありますか?

4

1 に答える 1

0

: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
于 2013-09-08T14:47:00.880 に答える