2013-03-23 2 views
0

Я ссылки на HAML частичное в Синатры:Haml парциальное с Синатрой

= haml :'_review', :locals => {:someLocal => someLocal} 

Кажется, я делаю это не так, как я в том числе подчеркивания в части имени. Разве нет способа, чтобы Синатра произнесла свою часть и оставила знак подчеркивания.

Без Синатры Я думаю, что его что-то вроде этого:

= render :partial => 'review', :locals => {:someLocal => someLocal} 

, однако, не может получить, чтобы работать с Синатрой.

Любые идеи?

ответ

3

Вы ничего не делаете «неправильно», при вызове представления вы используете базовое имя файла, если у него есть знак подчеркивания, вы используете знак подчеркивания; если нет, вы этого не сделаете. Я действительно не вижу большой пользы в использовании подчеркиваний или в том, что касается подчеркивания. Тем не менее, я поддерживаю Sinatra Partial, и так как некоторые другие люди хотели it it's in there.

enable :partial_underscores 

partial :review # will look for the _review.haml file. 

Если вы хотите, чтобы выключить его для конкретного вызова:

# will render the non_underscored_partial.haml file. 
partial :non_underscored_partial, :underscores => false 
1

В sinatra все виды визуализируются с помощью views/layout.erb - если он присутствует - и вы должны иметь в нем вызов yield.

Если у вас есть вложенный макет, вам необходимо построить структуру макета на стороне «контроллера», как описано в Sinatra README.

+0

@forumuser как это ясно [в инструкции] (http://www.sinatrarb.com/intro#Views % 20 /% 20Templates), Sinatra является агностиком языка, поэтому, если язык шаблона поддерживается, его вызов шаблону будет таким же, например, 'erb: index' вызывает' index.erb'. 'haml: index' вызывает' index.haml'. 'yield' в макете даст тот шаблон, который вызывается с помощью' layout.EXT', где «EXT» - это расширение языка (если иное не передано как опция). – iain