在类别视图中,我有:
<ul>
<% @category.subcategories.each do |subcategory| %>
<li>
<h6>
<%if subcategory.has_topic_headings? %>
<%= link_to subcategory.name, { controller: 'subcategories',
action: 'show_topic_headings',
category_id: subcategory.category_id,
id: subcategory.id
}, data: 'topic_heading_link',
remote: true %>
<% else %>
<%= link_to subcategory.name, subcategory %>
<% end %>
</h6>
<hr>
</li>
<% end %>
</ul>
在 application.js 中:
/* slides in the subcategory menu or the content */
$('.category-menu a').on(
'click',
function(e) {
if ($(this).attr('data')) {
/* make submenu visible */
$('.stretched.nav.row > .slider').animate({left:'-62.5em'});
e.preventDefault();
}
else {
/* make content visible */
$('.stretched.main.row > .slider').animate({left:'-62.5em'});
e.preventDefault();
}
}
);
在 subcategories_controller.rb 中
def show_topic_headings
respond_to :js
@subcategory = Subcategory.find(params[:id])
end
在 subcategories/show_topic_heading 我有:
$('.subcategory-menu').html( "<%= escape_javascript( render( partial: "layouts/topic_headings", locals: { subcategory: @subcategory} ) ) %>" );
单击活动链接, .subcategory-menu 应填充正确的内容,并且包含的 div 应滑入。但内容仅在静态时出现(例如,如果我放置一个字符串而不是对 @subcategory 的引用) . 请注意,我在其中插入子类别部分的视图是类别视图。