2011-04-22 57 views
5

我在使用Rails 3中的Mustache使用this gem,在试图在通常使用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}}标签中以处理我设置标题的所有不同情况,但这似乎与理想情况相差甚远。

回答

0

胡子模板的所有逻辑都应放入视图文件中。例如,您的show.html.mustache模板应该有一个名为show.rb的关联Ruby视图文件,您可以在其中放置模板的任何自定义逻辑。

模板将使用{{page_title}}呼叫

<html> 
    <head> 
    <title>{{page_title}}</title> 
    </head> 
</html> 

和视图文件将定义一个page_title方法来填充模板

# inside show.rb 
def page_title 
    SettingsList.site_title + " " + @post.title 
end