2015-11-06 7 views
2

Может ли кто-нибудь помочь мне со следующим? У меня есть частичный вид с именем _menu.html.erb внутри общий папка в папке видов. Я пытаюсь сделать это представление на моих страницах так, как этоRuby on Rails partials

<%= render "shared/menu" %> 

Но я получаю следующее сообщение об ошибке.

Missing partial shared/_menu with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]} 

Что я делаю неправильно?

Спасибо!

+1

Является ли ваш парциальное находится в 'приложение/просмотров/Shared/_menu.html.erb'? // Nevermind, глупый я. Вы уже дали ответ на свой вопрос. –

+3

попробуйте заменить вашу строку этим <% = render: partial => "/ shared/menu"%> –

+0

Спасибо mokariya2 thatsработало. Но почему? Есть ли разница между рендерингом частичного и просто рендеринга? –

ответ

2

Поместите свой menu.html.erb

здесь

app/views/shared/_menu.html.erb 

и затем сделать это с помощью этой линии

<%= render :partial => "/shared/menu" %> 
0

Если вы используете только "визуализации" с аргументом, это excpecting объект ActiveRecord, и будет искать «показ» частичного объекта, например:

<%= render @user %> #this will render the "user/show" partial for @user 

Вы можете оказать классический частичный, как это (без locals, если вам не нужны какие-либо аргументы):

<%= render partial: "shared/menu", locals: {my_arg: my_val} %>