如何使用 button_to 以一种方式切换布尔值

How to toggle a boolean one way with button_to

我在 if else 方法中有 2 个按钮,假设第一个按钮允许用户将布尔值从 false 更改为 true。然后,如果模型显示它是真的,它将显示另一个按钮,即删除按钮。我无法让切换按钮(最上面的那个)正常工作删除没问题。这是现在的情况。

  def which_button(reportapproval)
    if reportapproval.user_approved == false
      button_to "Approve this Manager?", { controller: "users/reportapprovals", id: @reportapproval.id, action: "#not sure what goes here" }, method: :#not sure what goes here, data: {confirm: "Are you sure you want to give this manager access to your report?" }
    else
      button_to "Remove this Manager", { controller: "users/reportapprovals", id: @reportapproval.id, action: "destroy" }, method: :delete, data: {confirm: "Are you sure you want to remove this manager's access to your report?" }
   end
  end

但我一直收到错误 Post 没有找到路线,我知道这是不对的。我希望这可以在 reportapproval 模型中切换一个布尔值。请告诉我我需要做什么。

为此,您需要在 users/reportapprovals 控制器中执行新操作,当用户单击第一个按钮时,它将 reportapproval.user_approved 设置为 true。在 action 属性的第一个按钮中添加创建的新动作。还要注意在路线中提及相同的动作。为避免提及控制器和操作,您还可以指定创建的新路由的路径。所以这就是你需要做的。这也可以使用 AJAX 来完成,或者通常通过重新加载页面来完成。