私はHAMLファイルを読み込み、その中から静的なhtmlファイルを作成するレーキタスクを作りたいと思っています。これは、ここで説明した方法でエラーページを動的にローカライズすることです。http://devcorner.mynewsdesk.com/2010/01/13/rails-i18n-and-404500-error-pages/Haml :: Engineでrailsメソッドを使用する
エラーページを書き込む方法は次のとおりです。
def write_error_page(status, locale = nil)
dest_filename = [status.to_s, locale, "html"].compact.join(".")
File.open(File.join(Rails.root, "public", dest_filename), "w") do |file|
path = File.join(Rails.root, "app", "views", "errors", "#{status}.haml")
file.print Haml::Engine.new(File.read(path)).render
end
end
問題は、Haml :: Engineに利用できるrailsメソッドがないことです。だから、hamlファイルを読み込もうとすると、ファイルのすべてのrailsメソッドにエラーが発生します(image_tag、form_for、明らかにI18n.translateのようなメソッド を使いたい)。
私はここで解決されていた同様の問題に気づい:#は、「未定義のローカル変数やメソッドの `config」:私は上記のリンクに記載されたソリューションをしようとしたとき、私は次のエラーを取得する、しかしRails HAML engine rendering
を"
私はHAMLファイルを読むことができるように、Haml :: Engineでレールメソッドを動作させるにはどうすればよいですか?私もERBに切り替えようとしましたが、他の誰かがここで少なくとも部分的に解決したのと同じ問題につながることに気付いたrender erb from database into view problem please help!しかし、この解決法も私には役に立たなかった。
私はHaml :: Engineを使用するよりも他のソリューションにもオープンしています。私はcapture_hamlヘルパーを見たが、それが私にどちらの助けになるか見ていない。
これを使用しようとしていますが、Rails.configuration.paths.app.views.firstは、#のための未定義のメソッド 'app 'をエラーしています。 –
tbem
代わりに私は解決しました:Rails.configuration.paths ["app/views"]。最初 – tbem
他の問題は、私はヘルパーメソッドにアクセスすることはできません、どうすればそれを注入できますか? – tbem