【发布时间】:2011-09-07 20:22:07
【问题描述】:
我在我的应用程序中遇到了 Rails 3 和 HAML 的一些问题:出于某种原因,Rails 似乎没有加载处理程序来处理 haml 文件。每个动作都会给出一个类似下面的错误信息:
模板丢失
缺少带有 {:formats=>[:html], :handlers=>[:rjs, :rhtml, :rxml, :builder, :erb], :locale=>[:en, :en 的模板contact_search/index ]} 在视图路径“/var/www/osphonebook/app/views”、“/var/www/osphonebook/vendor/bundle/ruby/1.8/gems/devise-1.3.4/app/views”中
查看“处理程序”选项:它没有 :haml...
问题是,这只发生在我公司设置的服务器上的生产模式下。在开发和测试模式下它工作正常。此外,如果我在开发 PC 上以生产模式启动应用程序,它就可以工作。
关于服务器的一些信息:
更新(2011 年 6 月 6 日):升级到 Ruby 1.9,但仍然无法正常工作。
ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux]
Gems included by the bundle:
abstract (1.0.0)
actionmailer (3.0.7)
actionpack (3.0.7)
activemodel (3.0.7)
activerecord (3.0.7)
activeresource (3.0.7)
activesupport (3.0.7)
arel (2.0.10)
bcrypt-ruby (2.1.4)
builder (2.1.2)
bundler (1.0.14)
devise (1.3.4)
erubis (2.6.6)
haml (3.1.1)
i18n (0.5.0)
kgio (2.4.1)
mail (2.2.19)
mime-types (1.16)
orm_adapter (0.0.5)
pg (0.11.0)
polyglot (0.3.1)
rack (1.2.3)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.7)
railties (3.0.7)
rake (0.8.7)
sass (3.1.2)
sqlite3 (1.3.3)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.27)
unicorn (3.6.2)
warden (1.0.4)
如果需要更多信息,请评论问题,我会更新它。感谢您的帮助。
【问题讨论】:
-
对于您发布的错误,您的视图模板的确切文件名是什么?
-
另外,您是否更新了您的捆绑包并在您的生产机器上重新启动了服务器?
-
@dmarkow 感谢 cmets。文件名是 app/views/contact_search/index.html.haml 是的,bundle 之后服务器重启了。
-
不要将 haml 放在 :assets 组中。 默认情况下,资产组中的 Gem 不包含在生产中。 我知道你已经找到了解决方案,我只是希望阻止有人和我落入同样的陷阱。
-
同样,不要只将 haml-rails 放在 :development Gemfile 组中,我正在运行自动化测试,所以我也需要在 :test 中包含 haml-rails。
标签: ruby-on-rails-3 haml actionview