Rails 4 - 如果boolean为true则将对象移动为true(不刷新页面)

时间:2016-05-02 19:33:22

标签: ruby-on-rails

我一直在谷歌搜索,但也许我的术语不允许我找到我正在寻找的答案,因为我对编程很新。

基本上,如果一个对象为真(我的复选框已经被检查并且对象已经完成)我怎么能将该对象从主页面上移开,并且我猜测它是“归档”的,只用完成的对象。所有人都在同一页上。

E.g。用户点击复选框,标记已完成>对象移动到完成>用户保持在同一页面,可以冲洗并重复循环。

我不是要求任何人为我创造这个,远非它 - 我的问题是,任何人都可以指出我正确的方向可能是rails doc或者我想做的事情所以我可以阅读它并弄清楚该怎么做?

谢谢&最诚挚的问候

2 个答案:

答案 0 :(得分:1)

您将使用Ajax(Jquery库)并可能使用.delegate()

以下是Ajax的一个例子:

在您的javascript管道/app/assets/javascripts/my_new_ajax_file.js

中创建一个新的JavaScript文件

在所述文件中,您需要进行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请求