为什么这个Rails在第一次请求时是ajax部分刷新,而不是在后续请求中?

时间:2018-06-03 05:39:15

标签: ruby-on-rails turbolinks ruby-on-rails-5.2

我对ajaxified Rails部分感到沮丧。在第一次请求时,部分按预期替换。在所有后续请求中,partial似乎正确加载,但未添加到DOM。我必须忽略一些明显的东西(也许Turbolinks相关?)。有人可以帮忙吗?

#myobjects/index.html.erb

<div id="container">
<%= render partial: "myobjects/myobject", collection: @myobjects %>
</div>

<%= link_to "All", myobjects_path, remote: true %>
<%= link_to "Approved", myobjects_path(filtered: "approved"), remote: true %>
<%= link_to "Rejected", myobjects_path(filtered: "rejected"), remote: true %>

#myobjects/index.js.erb
$('#container').html("<%= render partial: 'myobjects/myobject', collection: @myobjects");

示例:

  1. 我加载myobjects索引,显示所有记录。
  2. 点击Approved链接,仅显示已批准的记录。
  3. 我单击其中一个链接,DOM不会更改。
  4. 我可以看到myobjects/_myobject.html.erb部分正确加载,即使在上面的第3点也是如此。如果我添加<% Rail.logger.info myobject.to_yaml %>,则正确的记录详细信息将打印到日志中。然而,部分未添加到DOM中。

    我错过了什么?

0 个答案:

没有答案