jquery - 管理员批准代理创建的产品。我在产品模型中有一个布尔字段发布,默认情况下为 false。Rails 5 应用程序
问题描述
我有 2 种不同的代理和管理员设计模型,然后我有产品模型,代理可以创建可以由管理员用户批准的新产品。
我在产品模型中有一个布尔字段发布,默认情况下为 false。
管理员还可以查看产品。
我需要一个发布按钮,将布尔值更改为 true 而无需重新加载页面。然后发布按钮变为取消发布。如何使用 jquery 或其他东西来做到这一点。
我是 Rails 新手,这是我的第一个应用程序。需要指导。。谢谢各位。。
解决方案
你在这里寻找两种不同的东西。
- 在不重新加载页面的情况下向后端提交更改。
- 当后端发生变化时,更新前端的发布按钮。
(下面的代码只是示例代码 - 您需要它来适应您当前的设置)
我会通过制作“发布”按钮来处理这个问题remote: true
。也许您的链接如下所示:
<%= link_to “Publish”, product_path(product_id: product.id), class: "publish", remote: true %>
这remote: true
将使这是一个 AJAX 请求。
在您的 javascript 中,您需要观察成功的 ajax 请求并在成功完成后执行一些操作。
$(‘.publish a’).on (‘ajax:success’, updatePublishBtn)
function updatePublishBtn(event, data) {
$(‘.publish a’).text("Unpublish");
}
像这样的东西会监视一个类的链接,publish
并在收到成功的 ajax 响应时将文本更新为“取消发布”。实际上,您可能希望您的 javascript 隐藏发布按钮并显示取消发布按钮(其工作方式相同),因为单击“取消发布”应该会点击不同的路线......
这将为您提供总体思路,但您需要根据您的用例填写具体信息(或在您的答案中提供代码,以便我更具体)。
推荐阅读
- regex - 使用前瞻反向正则表达式以查找匹配的字符串
- c# - 从 Main void 调用一个私有 void 来启动我的应用程序
- java - 使用内部联接获取一个月的所有周数据
- ssis - 在 SSIS 脚本任务中获取连接字符串
- javascript - UnhandledPromiseRejectionWarning while no 没有承诺
- python-3.x - Python Value Error:Need more than 1 value to unpack 为什么这个错误
- c++ - Qt 应用程序将 qwidget 显示为新进程(fork)
- windows - 可以在其他安装程序中使用基于 WiX 的 Windows 安装程序吗?
- java - 使用@test 注解并行执行
- python - Python:如何根据 df 中其他列的值在 df 中创建新列