5

我在 Rails 3 中使用 Mustache 和这个 gem,当我尝试在我通常使用的实例中使用 Mustache 时遇到了障碍yield :parameter

<html>
  <head>
    <title><%= yield :page_title %></title>
  </head>
</html>

显示帖子视图:

<% content_for :page_title do %>
  <%= SettingsList.site_title + " " + @post.title %>
<% end %>

有没有办法用 Mustache 重现这种行为?编译模板时似乎有一种方法可以解决这个问题:

mustache = MustacheClass.new
mustache[:yield_page_title] = content_for(:page_title)

但是,使用 mustache_rails3 gem 来解决我当前的设置似乎很尴尬。

我也愿意接受任何指出yield完全避免这种方法的好方法的答案。可以将足够的逻辑放入{{page_title}}标签中以处理我设置标题的所有不同情况,但这似乎远非理想。

4

1 回答 1

0

Mustache 模板的所有逻辑都应放入视图文件中。例如,您的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
于 2012-03-18T05:11:13.540 回答