Rails Ajax Javascript render partial with collection未显示任何内容

Rails Ajax Javascript render partial with collection未显示任何内容,javascript,ajax,ruby-on-rails-4,renderpartial,Javascript,Ajax,Ruby On Rails 4,Renderpartial,在我的index.html.erb文件中,我有: <table> <thead> <tr> <th>Title</th> <th>Note</th> <th colspan="2"></th> </tr> </thead> <tbody id="avail-courses"> &l

在我的index.html.erb文件中,我有:

<table>
  <thead>
    <tr>
      <th>Title</th>
      <th>Note</th>
      <th colspan="2"></th>
    </tr>
  </thead>

  <tbody id="avail-courses">
    <%= render partial: 'avail_course', collection: @courses %>
  </tbody>
</table>

标题
注
它基本上呈现了部分_avail_course.html.erb

我试图通过ajax调用进行此渲染,因此我将javascript文件enroll.js.erb设置为:

$('#avail-courses').html("<%= escape_javascript render partial: 'avail_course', collection: @courses %>");
$('#avail courses').html(“”);
ajax调用成功,但渲染不返回任何内容,因此id为的表为空

我是不是遗漏了什么?我怀疑,在js文件中,我无法直接传入集合。

为完整起见,我的部分_avail_course.html.erb为:

<tr>
  <td><%= avail_course.title %></td>
  <td><%= avail_course.note %></td>
  <td><%= link_to 'Info', 'course_list/info/' + avail_course.id.to_s %></td>
  <td><%= button_to 'Enroll', 'course_list/enroll/' + avail_course.id.to_s, method: :put, remote: true %></td>
</tr>


非常感谢您的任何意见。

请检查您的部分姓名
,但您上面所写的
基本上是部分有效的\u courses.html.erb。
。因此,请再次检查您的拼写。

我发现了这个问题。这是因为控制器中没有定义@courses。
在正常的format.html响应中,重定向到会处理@courses,但我忘了format.js不会调用另一个控制器。

如果我没有错,那么您拼写错误
\u avail\u courses.html.erb
,但您正在渲染
avail\u courses
。这是拼写错误。但是我的代码中的文件名是正确的。谢谢你指出这一点。当我打这个问题时,这是一个打字错误。现在一切都解决了。