我的 cart_controller 中有几个动作。我在 /carts 中有 2 个视图:payment.html.erb和pay.html.erb
def pay
success = #do something that returns true or false
if success
respond_to do |format|
format.html { redirect_to '/cart/checkout/review'}
end
else
render_errors
end
end
def render_errors
respond_to do |format|
format.html { render 'payment'}
end
end
我期望的是,当
success == false
它击中 render_errors 并呈现payment view然后停止。然而它正在做的是:它正在渲染payment viewAND THEN 它也渲染了pay view。所以payment view永远不会显示。做错了什么?我在 Rails 4.0 上使用 Ruby 2.0。
更新:我发现每当我这样做时@cart.errors.add(:name, 'error message'),无论任何or语句pay view如何都会呈现。任何想法?returnrespond_to