我对 ajaxified Rails 部分有一个令人沮丧的问题。在第一次请求时,部分将按预期替换。在所有后续请求中,部分似乎已正确加载,但未添加到 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");
例子:
- 我加载
myobjects
索引,显示所有记录。 - 我点击
Approved
链接,只显示批准的记录。 - 我单击其他链接之一,DOM 没有改变。
我可以看到myobjects/_myobject.html.erb
部分正在正确加载,即使在上面的第 3 点也是如此。如果我添加<% Rail.logger.info myobject.to_yaml %>
正确的记录,详细信息将被打印到日志中。然而,部分并没有添加到 DOM 中。
我错过了什么?