Выход рельсов с параметром в усах


Я использую усы в 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 5

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