我的 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 view
AND THEN 它也渲染了pay view
。所以payment view
永远不会显示。做错了什么?我在 Rails 4.0 上使用 Ruby 2.0。
更新:我发现每当我这样做时@cart.errors.add(:name, 'error message')
,无论任何or语句pay view
如何都会呈现。任何想法?return
respond_to