2011-01-29 4 views
0

Я хочу создать список сообщений блога на боковой панели.
Мои BlogsControllerПоказать записи в блоге (rails 3)

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

И я призываю bloglist.html.erb в макет/application.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.

Когда вы вызываете рендер на вид и передаете «блоги/блоглисты», это файл, который он будет искать.

Вы также должны знать, что, вызвав это частичное, оно будет не вызовет действие контроллера по умолчанию. Если вы хотите получить список блога при каждом рендеринге действий, вы должны использовать before_filter на вашем ApplicationController.

Что-то вроде этого:

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    before_filter :get_blog_list 

    protected 
    def get_blog_list 
    @blog = Blog.all 
    end 
end 
Смежные вопросы