if-else方法中有两个按钮,假设第一个按钮允许用户将布尔值从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路由未找到,我知道这是不对的。我希望这能在报表审批模型中切换布尔值。请告诉我需要做什么。
为此,您需要在users/reportapprovals
控制器中执行一个新操作,当用户单击第一个按钮时,该操作会将reportapproval.user_approved
设置为true
。在动作属性的第一个按钮中添加创建的新动作。还要注意在路线中提及相同的动作。为了避免提及控制器和操作,您还可以指定创建的新路由的路径。所以这就是你需要做的。这也可以使用AJAX来完成,或者通常通过重新加载页面来完成。