首页 > 解决方案 > 管理员批准代理创建的产品。我在产品模型中有一个布尔字段发布,默认情况下为 false。Rails 5 应用程序

问题描述

我有 2 种不同的代理和管理员设计模型,然后我有产品模型,代理可以创建可以由管理员用户批准的新产品。

我在产品模型中有一个布尔字段发布,默认情况下为 false。

管理员还可以查看产品。

我需要一个发布按钮,将布尔值更改为 true 而无需重新加载页面。然后发布按钮变为取消发布。如何使用 jquery 或其他东西来做到这一点。

我是 Rails 新手,这是我的第一个应用程序。需要指导。。谢谢各位。。

标签: jqueryrubyruby-on-rails-5

解决方案


你在这里寻找两种不同的东西。

  1. 在不重新加载页面的情况下向后端提交更改。
  2. 当后端发生变化时,更新前端的发布按钮。

(下面的代码只是示例代码 - 您需要它来适应您当前的设置)

我会通过制作“发布”按钮来处理这个问题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 隐藏发布按钮并显示取消发布按钮(其工作方式相同),因为单击“取消发布”应该会点击不同的路线......

这将为您提供总体思路,但您需要根据您的用例填写具体信息(或在您的答案中提供代码,以便我更具体)。


推荐阅读