我一直在谷歌搜索,但也许我的术语不允许我找到我正在寻找的答案,因为我对编程很新。
基本上,如果一个对象为真(我的复选框已经被检查并且对象已经完成)我怎么能将该对象从主页面上移开,并且我猜测它是“归档”的,只用完成的对象。所有人都在同一页上。
E.g。用户点击复选框,标记已完成>对象移动到完成>用户保持在同一页面,可以冲洗并重复循环。
我不是要求任何人为我创造这个,远非它 - 我的问题是,任何人都可以指出我正确的方向可能是rails doc或者我想做的事情所以我可以阅读它并弄清楚该怎么做?
谢谢&最诚挚的问候
答案 0 :(得分:1)
您将使用Ajax(Jquery库)并可能使用.delegate()
。
以下是Ajax的一个例子:
在您的javascript管道/app/assets/javascripts/my_new_ajax_file.js
在所述文件中,您需要进行ajax调用,该调用能够对您的URL进行异步调用,在您的情况下,我相信您正在寻找。
我们假设您有一条名为/api/v1/checkbox
的路线指向Api#check
(假设您在此js文件之前包含了jquery) 在您的Javascripts文件中:
$(document).ready(function() {
$('.the_class_on_your_checkbox').click(function() {
myAjaxCall();
});
});
function myAjaxCall() {
$.ajax({
type: 'POST',
url: '/api/v1/checkbox/',
data: {
// Any data you need to send through
},
success: function(response) {
console.log(response);
},
error: function() {
console.log("Something went wrong");
}
});
}
现在,当您点击复选框时,它会拨打您的路线,我假设您已在控制器中定义。
您现在可以在该操作中操作后端数据(在控制器内部)并从数据库发送和接收数据。
您发送信息的方式,它在响应中(在ajax调用的成功函数中)您从控制器接收JSON,如此...
def check
render json: "OK"
end
现在在Ajax调用中你可以操作你收到的JSON(把你需要的东西放在数据库中而不是OK)
如果您需要澄清任何事情让我知道,我不知道您做了多少或者不知道,所以我只是试图掩盖一堆。
编辑:功能错误
答案 1 :(得分:0)
据我了解你想要更新对象而不刷新页面。 所以你必须使用ajax请求