在返回JSON数据时,使用Jquery显示link_to

Displaying link_to using Jquery, on the return of JSON data

本文关键字:显示 Jquery link to 使用 返回 JSON 数据      更新时间:2023-09-26

我已经搜索了SO和nada,所以我提出了一个问题。我希望这对将来的某个人有帮助。

我想做什么

我正试图通过JQuery在页面上显示edit_job_path链接。

我在做什么

我做了一个ajax请求,它从控制器返回JASON数据@jobs是包含在JSON数据中的集合。我想使用Jquery在当前视图中显示所有这些作业。

以下是我的控制器返回的内容:

jobs.controller.rb
#…......irrelevant detils skipped
    format.json { render :json => @jobs.to_json(include: [:job_type, :level => {:include => :building}]  )    }

这是我的Jquery函数:

function fill_out_jobs_table(data){ 
    $.each(data, function(i, job){
        var infoTableRow = "";
        infoTableRow += '<tr> ';
        infoTableRow += '<td>' + job.level.building.name + '</td>';
        infoTableRow += '<td>' + job.level.name + '</td>';
        infoTableRow += '<td>' + job.hours + '</td>';
        infoTableRow += '<td>' + job.panels_created + '</td>';
        infoTableRow += '<td>' + job.job_type.name + '</td>';
        infoTableRow += '<td>' + <%= link_to("Edit Job", edit_job_path(job.id))%> + '</td>';
        infoTableRow += '</tr> '
        $("#jobs_table").append(infoTableRow);
    });
};

事件发生后,会运行fill_out_jobs_table函数,然后显示从JSON返回的数据。它当前正在成功显示。唯一没有显示的是link_to。我还想为每个特定作业实例显示一个指向edit_job_path的链接。

有人知道如何显示链接吗

任何帮助都非常感谢

更新

好的,所以我尝试创建一个属性。链接正在显示,但作业id未添加到链接中。我添加了以下几行,显示的路径是:/jobs/edit---->,而job.id也没有添加到末尾。有线索吗?:

var edit_job_link = "<a href='/jobs/edit'" + job.id + " > Edit Job </a>";
infoTableRow += "<td>" + edit_job_link + " </td>";

你很接近,试试我下面的建议。请注意,包含了单引号(')。作业编辑路径也不正确,应该是/jobs/:id/edit,请注意这一点。

var edit_job_link = "<a href='/jobs/" + job.id + "/edit' > Edit Job </a>";