代码之家  ›  专栏  ›  技术社区  ›  pithyless

Rails 3将HAML文件呈现为HTML

  •  1
  • pithyless  · 技术社区  · 14 年前

    遵循指南 http://github.com/fortuity/rails3-mongoid-devise 我已经用Haml、Designe和Mongoid设置了Rails3。(作为旁注,指南非常详细;建议新Rails用户阅读!)

    唯一的问题是我不能让Rails呈现我的HAML视图:

    Started GET "/" for 127.0.0.1 at 2010-07-01 14:40:23 +0200
      Processing by HomeController#index as HTML
      MONGODB miabreto_development['users'].find({}, {})
    Rendered home/index.html.haml within layouts/application (4.2ms)
    Completed 200 OK in 21ms (Views: 21.0ms)
    

    注意,它不会返回缺少模板的错误,它只是将视图呈现为纯HTML。文件名遵循惯例:

    app/views/home/index.html.haml
    

    在Gemfile中,我有:

    # Bundle gems needed for Haml
    gem 'haml', '3.0.13'
    gem "rails3-generators", :group => :development
    

    由于我不熟悉Rails,所以我不确定决定使用什么渲染器等的执行路径是什么样子的。是否有人建议我在设置中可能遗漏了什么,或者在哪里查找错误?(这是Rails.3.beta4)

    1 回复  |  直到 14 年前
        1
  •  2
  •   stephenmurdoch    14 年前

    一些事情

    首先,如果index.html.erb存在于views文件夹中,Rails将呈现它。它将在呈现index.html.haml之前执行此操作。所以,在视图文件夹中查看一下,如果您有一个名为index.html.erb的文件,那么只需删除它,Rails就会开始为您执行HAML。

    其次,即使它确实呈现了文件的HAML版本,它仍然会读取“由homecontroller index处理为HTML”

    希望这有帮助,是的,这是一个很好的教程,几天前我自己读过。

    PS-两种判断模板是否执行HAML的方法

    1. 在您的HAML文件中添加“哈罗来自HAML”
    2. 查看输出服务器输出,您应该可以看到以下内容:

      在布局/应用程序中呈现home/index.html.haml(42.9ms)