gpt4 book ai didi

ruby-on-rails - rails respond_to 不会阻止代码进一步执行

转载 作者:行者123 更新时间:2023-12-02 17:41:47 25 4
gpt4 key购买 nike

我的 cart_controller 中有几个 Action 。我在/carts 中有 2 个 View :payment.html.erbpay.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 然后它也呈现 pay view。所以 payment view 永远不会显示。做错了什么?我在 Rails 4.0 上使用 Ruby 2.0。

更新: 我发现每当我执行 @cart.errors.add(:name, 'error message') 时,pay view 都会呈现,而不管任何 returnrespond_to 语句。有什么想法吗?

最佳答案

我知道这是很久以前的事了,但对于 future 的 Google 员工来说!

respond_to block 的末尾添加一个 return 语句应该可以解决问题!

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 and return # here!
end

关于ruby-on-rails - rails respond_to 不会阻止代码进一步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com