我正在開發Rails3引擎應用程序,並且我想使用Haml作爲視圖。要求在Rails3引擎上使用Haml的最佳方式
首先,我所做的就是把它添加到發動機的Gemfile:
gem "haml"
雖然我是測試我的引擎,它工作正常(我用https://github.com/josevalim/enginex生成的寶石,並對其進行測試虛擬應用程序)。
當我試圖在真正的Rails應用程序上使用引擎時,我的問題就開始了。應用程序在它自己的Gemfile上沒有gem「haml」,所以它沒有初始化Haml,所以我收到的模板沒有找到錯誤,因爲它沒有查找.haml視圖。我在想,通過在引擎上要求Haml,Rails應用程序也需要它。
我已經爲現在做的是在發動機上增加一個配置/初始化/ haml.rb與此代碼:
require 'haml'
Haml.init_rails(binding)
它的工作了,但我不知道這是否真的是一個好方法來做到這一點。 爲什麼Rails沒有調用Haml「init.rb」文件,因此只需將gem「haml」添加到引擎Gemfile中就可以正確初始化Haml?
這有幫助。還有必要確保在發動機的某個位置包含「需要'haml'」。 – higginbotham 2011-05-28 12:22:55
是的,我想我離開了。我通常將它添加到主ruby文件。對於my_plugin,它會出現在my_plugin/lib/my_plugin.rb的頂部 – johnmcaliley 2011-05-28 14:17:38