2011-01-29 60 views
0

我想在邊欄中創建博客文章列表。
我BlogsController在邊欄中顯示博客文章(rails 3)

def bloglist 
    @blog = Blog.all 
    render 'bloglist' 
end 

我呼籲在佈局/ application.html.erb bloglist.html.erb:

<%= render "blogs/bloglist" %> 

後,我得到了缺少模板錯誤:

Missing partial blogs/bloglist with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths...

怎麼了?

回答

1

你的文件命名似乎有錯誤。

A 部分視圖必須始終以下劃線開頭。在這種情況下,您的部分視圖必須是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 
相關問題