gpt4 book ai didi

javascript - 如何拒绝Rails更新方法并触发JavaScript警报框?

转载 作者:行者123 更新时间:2023-12-03 08:17:42 26 4
gpt4 key购买 nike

我的 Controller 中有update方法:

def update
if @daily_order.update(daily_order_params.merge({default_order:false}))
respond_to :js
else
render :edit
end
end

我已将 pax 作为 daily_order_params 中的参数之一,我现在要做的是,当用户尝试将每日订单更新为零 (0) pax 值。

我尝试在 update 方法中使用 byebug 来检查 params[:pax] 但它什么也不返回。这是空白的。

enter image description here

但是新更新的 pax 值已成功保存在数据库中。

enter image description here

我尝试在模型中使用 before_update,但我不知道如何继续。

before_update   :reject_zero_pax_order_update

def reject_zero_pax_order_update
# i got stucked here
end

update.js.erb

console.log("record updated");

我应该做什么:

  1. 如果输入的pax0,则拒绝更新
  2. 如果输入的pax0,触发JS警告框
  3. 在数据库中维护旧的 pax

最佳答案

:pax 属性位于 :daily_order 哈希内部,而不是 params 哈希内部。你的参数看起来像这样:

{ daily_order: { pax: 0 }}

因此您应该使用 params[:daily_order][:pax]

访问它

您的操作应该如下所示:

unless params[:daily_order][:pax] == 0
@daily_order.update(daily_params.merge{default_order: false} )
respond_to :js
else
render :edit
end

#update.js.erb

alert('hey, the pax cant be 0 ');

我假设,您希望仅当有人在场时才进行更新,否则会显示警报。

关于javascript - 如何拒绝Rails更新方法并触发JavaScript警报框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866303/

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