在自动完成中添加link_to标记会导致Rails

时间:2014-07-07 10:18:30

标签: javascript jquery ruby-on-rails ajax

我正在尝试在自动填充结果中添加显示页面的链接。但它不起作用。我在下面发布我的代码。但我试图检查我的jquery是否正在使用警报框执行。它工作正常。但是,当我尝试使用jquery为某些div添加css时,我不能。

//的application.js

    xmlhttp.onreadystatechange = function()
    {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {
            var key = JSON.parse(xmlhttp.responseText);
            document.getElementById("search-display").innerHTML = "";
        }
        if(key.length == 0){
            document.getElementById("search-display").innerHTML = "No results found";
        }
        for( var i=0; i < key.length; i++){
            var display = key[i].firstname + "&nbsp&nbsp" + key[i].mobilenumber + 
               "\n" <%= link_to 'show', contact_path(@contact) %>;   //this line is not working

            document.getElementById("search-display").innerHTML += display;

            $(document).ready(function(){
                // alert("hello");
                **$("#search-display").css('background','white');** //this line is not getting executed 
            });

        }
    }

2 个答案:

答案 0 :(得分:0)

此JavaScript正在客户端计算机上运行。它无权访问Rails助手。您可以在服务器端(在控制器中)构建完整的URL,并在JSON响应中发送它。

答案 1 :(得分:0)

javascript正在客户端浏览器上运行 它对Ruby on Rails一无所知,也不知道link_to的内容是什么。

在这些情况下您应该使用的方法是:

  1. 调用javascript的链接
  2. 此时需要的任何必需的javascript(禁用链接或搜索按钮是这里经常采取的操作)是根据需要完成的,然后使用GET调用rails
  3. 以JSON
  4. 接收来自rails服务器的任何响应
  5. 使用JSON信息(有时),然后进一步更新屏幕。例如,删除复选框或填充建议的下拉列表(根据您的情况需要)。
  6. 您的工作取决于您的具体需求。