Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中使用Rails关联_Javascript_Ruby On Rails_Associations_Haml - Fatal编程技术网

在Javascript中使用Rails关联

在Javascript中使用Rails关联,javascript,ruby-on-rails,associations,haml,Javascript,Ruby On Rails,Associations,Haml,我正在尝试使用ajax和rails创建一个提要,以获取管理员和警报的活动。当我第一次创建视图时,我只使用了rails,但我决定要有一个提要,每当数据库中有新的活动使用ajax时,该提要都会更新。我的ajax函数可以正常工作,但我意识到我有很多不能调用的关联,因为它是javascript而不是rails。我想知道如何使用连接将查询id替换为创建类似activity.alert.username的警报的人员的用户名 操作:“已创建警报” 管理员id:null 警报识别码:17 类别:“警报” 创建时

我正在尝试使用ajax和rails创建一个提要,以获取管理员和警报的活动。当我第一次创建视图时,我只使用了rails,但我决定要有一个提要,每当数据库中有新的活动使用ajax时,该提要都会更新。我的ajax函数可以正常工作,但我意识到我有很多不能调用的关联,因为它是javascript而不是rails。我想知道如何使用连接将查询id替换为创建类似activity.alert.username的警报的人员的用户名

操作:“已创建警报” 管理员id:null 警报识别码:17 类别:“警报” 创建时间:“2015-05-13T04:12:47.862Z” 身份证号码:6 学校编号:1 更新地址:“2015-05-13T04:12:47.862Z”

新观点

%div#activity-feed

:javascript

    getActivity();

    function getActivity(){

        $.getJSON("activity", function(data) {

            for(var i = 0; i < data.length; i++){
                var feed = "<div class='panel panel-default'> <div class='panel-body'>" + "<span>" + data[i].action + "</span>" + "</div> </div>";
            }

            $("#activity-feed").html(feed);

                    console.log(data);

        });
    }

    setInterval(function() {
        getActivity();
    }, 5000);
%div#活动提要
:javascript
getActivity();
函数getActivity(){
$.getJSON(“活动”,函数(数据){
对于(变量i=0;i
您需要在控制器(即Rails)中处理数据关联,因为Rails是可以直接访问数据库的层。基本上,您要做的是从控制器中的数据库加载所有必要的数据,并将其发送回客户端(Javascript)供其使用

您可以使用“包含”将关联的对象包括在内

@activities = Activity.include(:alert).where...

是的,这就是我想知道的,如何实现join-to-do,我刚刚更新了答案。您可以使用include。我希望这有帮助。它仍然给我id而不是用户名
%div#activity-feed

:javascript

    getActivity();

    function getActivity(){

        $.getJSON("activity", function(data) {

            for(var i = 0; i < data.length; i++){
                var feed = "<div class='panel panel-default'> <div class='panel-body'>" + "<span>" + data[i].action + "</span>" + "</div> </div>";
            }

            $("#activity-feed").html(feed);

                    console.log(data);

        });
    }

    setInterval(function() {
        getActivity();
    }, 5000);
@activities = Activity.include(:alert).where...