gpt4 book ai didi

ruby-on-rails - 在 Haml::Engine 中使用 Rails 方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:41 25 4
gpt4 key购买 nike

我想要一个读取 HAML 文件并从中创建静态 html 文件的 rake 任务。这样做的原因是我想以此处描述的方式动态本地化我的错误页面 http://devcorner.mynewsdesk.com/2010/01/13/rails-i18n-and-404500-error-pages/

这里是写错误页面的方法。

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)。

我注意到这里已经解决了一个类似的问题:Rails HAML engine rendering

但是,当我尝试上面链接中提到的解决方案时,出现以下错误:“undefined local variable or method `config' for #”。

如何让 rails 方法在 Haml::Engine 中工作,以便我可以读取 HAML 文件?我也尝试切换到 ERB,但注意到它会导致同样的问题,其他人至少部分解决了这里 render erb from database into view problem please help!但是这个解决方案也没有帮助我。

除了使用 Haml::Engine,我还愿意接受其他解决方案。我查看了 capture_haml 助手,但也看不出这对我有什么帮助。

最佳答案

您需要使 :environment 成为您的 rake 任务的依赖项:

task :some_task => :environment do
# stuff here
end

这将加载 Rails。听起来好像还没有加载。

关于ruby-on-rails - 在 Haml::Engine 中使用 Rails 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com