【问题标题】:Rails Yield With Parameter in MustacheRails 使用 Mustache 中的参数生成
【发布时间】:2011-08-11 07:00:28
【问题描述】:

我在 Rails 3 中使用带有 this gem 的 Mustache,但在我通常使用 yield :parameter 的情况下尝试使用 Mustache 时遇到了障碍。

<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}} 标记中以处理我设置标题的所有不同情况,但这似乎远非理想。

【问题讨论】:

    标签: ruby-on-rails yield mustache


    【解决方案1】:

    您的 Mustache 模板的所有逻辑都应放入视图文件中。例如,您的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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2021-07-15
      相关资源
      最近更新 更多