Выход рельсов с параметром в усах
Я использую усы в Rails 3 с этим драгоценным камнем, и я сталкиваюсь с препятствием при попытке использовать усы в том случае, когда я обычно использую yield :parameter
.
<html>
<head>
<title><%= yield :page_title %></title>
</head>
</html>
Показать вид поста:
<% content_for :page_title do %>
<%= SettingsList.site_title + " " + @post.title %>
<% end %>
Есть ли способ воспроизвести это поведение с помощью усов? Похоже, что есть способ решить эту проблему при компиляции шаблона:
mustache = MustacheClass.new
mustache[:yield_page_title] = content_for(:page_title)
Но кажется, что это было бы неудобно работать с моей текущей установкой, используя драгоценный камень mustache_rails3.
Я также открыт для любых ответов, которые указывают на хороший способ избежать этого подхода в целом. Можно было бы добавить достаточно логики в тег{{page_title}}
, чтобы справиться со всеми моими различными случаями установки заголовка, но это кажется далеким от идеала.1 ответ:
Вся логика для ваших шаблонов усов должна быть помещена в файл представления. Например, ваш шаблон
show.html.mustache
должен иметь связанный файл представления Ruby с именемshow.rb
, в который можно поместить любую пользовательскую логику для шаблона.Шаблон будет использовать вызов
{{page_title}}
<html> <head> <title>{{page_title}}</title> </head> </html>
И файл представления определит метод
page_title
для заполнения шаблона# inside show.rb def page_title SettingsList.site_title + " " + @post.title end