语境:
我有两个模型,模型 1 和模型 2。Model1 has_many model2's。在model1 的管理页面中,我呈现了一个_model2.html.erb 文件列表,每个model2 对应一个与model1 关联的文件。为了让用户从 model1 管理页面创建一个新的 model2,我在 model2 的视图目录下创建了一个 create.js.erb 文件。该文件当前如下所示:
$('#back').hide();
$('#allTab').removeClass('active');
$('#activeTab').addClass('active');
$('#completeTab').removeClass('active');
$('html,body').animate({
scrollTop: $('html,body').scrollHeight
}, {
duration: 600,
queue: false
});
$('#activeTabList').closest('.number_of_model2s').text("<%= @model1.model2s.count %>");
$('#activeTabList').append("<li><%= escape_javascript(render partial: 'model2s/model2', locals: {f: @model2, g: @model1}) %></li>");
$('#activeTabList').last().children().effect('highlight', {}, 3000);
问题:
我必须为@model1
以使部分工作的渲染。但我无法获得任何动画或突出显示。这个列表可能会很长,这就是我想滚动到页面底部的原因。我希望用户看到添加到列表中。突出显示不是很重要,但我正试图让它工作,因为我也有一个更新操作以类似的方式工作,我想突出显示被更新的部分(我删除了部分在那里,然后我在同一个地方再次请求相同的模型 2 的部分)。
问题:
为什么似乎执行的唯一代码行是渲染部分行是否有特殊原因?
更多信息:
如果我将上面的部分渲染线替换为
$('#activeTabList').append("<li id='model2_<%= @model2.id %>'><%= escape_javascript(render partial: 'model2s/model2', locals: {f: @model2, g: @model1}) %></li>");
在管理页面 html 中,我以这种方式指定列表项的 id,但是如果我在此处添加 id,则部分不会呈现。这似乎与我遇到的问题有关吗?