Mit*_*tch 5 yield ruby-on-rails mustache
我正在使用这个宝石的 Rails 3中的Mustache,当我尝试在我通常使用的实例中使用Mustache时,我遇到了障碍yield :parameter.
<html>
<head>
<title><%= yield :page_title %></title>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)
显示帖子视图:
<% content_for :page_title do %>
<%= SettingsList.site_title + " " + @post.title %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
有没有办法用Mustache重现这种行为?在编译模板时,似乎有一种方法可以解决这个问题:
mustache = MustacheClass.new
mustache[:yield_page_title] = content_for(:page_title)
Run Code Online (Sandbox Code Playgroud)
但似乎使用mustache_rails3 gem来解决当前的设置会很麻烦.
我也对任何答案持开放yield态度,指出一种完全避免这种方法的好方法.可以在{{page_title}}标签中输入足够的逻辑来处理我设置标题的所有不同情况,但这似乎远非理想.
Mustache 模板的所有逻辑都应放入视图文件中。例如,您的show.html.mustache模板应该有一个关联的 Ruby 视图文件,show.rb您可以在其中放置模板的任何自定义逻辑。
该模板将使用一个{{page_title}}调用
<html>
<head>
<title>{{page_title}}</title>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)
视图文件将定义一个page_title方法来填充模板
# inside show.rb
def page_title
SettingsList.site_title + " " + @post.title
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |