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

时间:2016-07-30 06:11:43

标签: javascript jquery json ajax ruby-on-rails-4

我搜索了SO和nada,所以提出了一个问题。我希望将来能帮到某人。

我想做什么?

我正在尝试显示一个edit_job_path链接,以便通过JQuery在页面上显示。

我在做什么?

我做了一个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。我还想为每个特定的作业实例显示一个link_to edit_job_path。

有没有人知道如何显示链接?

非常感谢任何帮助

更新

好的,所以我尝试创建一个属性。链接正在显示,但作业ID未添加到链接中。我添加了以下行,显示的路径是:/ jobs / edit ----&gt;没有job.id也被添加到最后。任何线索?:

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

1 个答案:

答案 0 :(得分:1)

你非常接近,请尝试下面的建议。请注意包含单引号(')。作业编辑路径也是错误的,它应该是/jobs/:id/edit,请注意这一点。

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