Урожай рельсов с параметром в усах - PullRequest
5 голосов
/ 23 апреля 2011

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

Я также открыт для любых ответов, которые указывают на хороший способ вообще избежать этого yield подхода. Можно было бы добавить достаточно логики в тег {{page_title}} для обработки всех моих различных случаев установки заголовка, но это, похоже, далеко от идеала.

1 Ответ

0 голосов
/ 18 марта 2012

Вся логика для ваших шаблонов усов должна быть помещена в файл представления.Например, ваш шаблон 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
...