我有两种不同的代理和管理员设计模型,然后有一种产品模型,代理可以创建可以由管理员用户批准的新产品。
我在产品模型中发布了一个布尔字段,默认情况下为false。
管理员还可以查看产品。
我需要有一个发布按钮,该按钮将布尔值更改为true,而无需重新加载页面。然后,发布按钮变为取消发布。如何使用jquery或其他方法实现。
我是Rails的新手,这是我的第一个应用程序。需要指导。 谢谢你们。
答案 0 :(得分:0)
您正在这里寻找两种不同的东西。
(下面的代码只是示例代码-您将需要它来适应当前的设置)
我可以通过点击“发布”按钮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隐藏“发布”按钮并显示一个“未发布”按钮(其工作方式相同),因为单击“取消发布”应该使用不同的路线...
这将为您提供总体思路,但是您需要根据您的用例填写具体信息(或在您的答案中提供代码,以便我可以更具体)。