我想在侧边栏中创建博客帖子列表 我的BlogsController
def bloglist
@blog = Blog.all
render 'bloglist'
end
我在layout / application.html.erb中调用了bloglist.html.erb:
<%= render "blogs/bloglist" %>
之后,我错过了模板错误:
缺少部分博客/博客列表{:handlers =&gt; [:erb,:rjs,:builder,:rhtml,:rxml],:formats =&gt; [:html],:locale =&gt; [:zh ,:en]}在视图路径中......
怎么了?
答案 0 :(得分:1)
您的文件命名似乎有误。
部分视图必须始终以下划线开头。在这种情况下,您的部分视图必须为app/views/blogs/_bloglist.html.erb
。
当您在视图上调用渲染并传递'blogs / bloglist'时,这就是它要查找的文件。
您还应该知道,通过调用该部分,默认情况下不会调用控制器操作。如果你想在每个动作渲染上获得博客列表,你应该在ApplicationController上使用before_filter。
这样的事情:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :get_blog_list
protected
def get_blog_list
@blog = Blog.all
end
end