2011-01-29 7 views
0

サイドバーにブログ投稿リストを作成したい。
マイBlogsControllerブログ記事をサイドバーに表示する(レール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

ファイルの命名に誤りがあるようです。

部分図は、常にアンダースコアで始まる必要があります。この場合、部分ビューは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 
関連する問題