【发布时间】:2011-06-30 02:30:24
【问题描述】:
我在编程的第 12 个小时,所以我可能忽略了一些简单的事情,但是关于这个问题有什么建议吗?
在我的 app_helper 中,我添加了一个带有 haml 的红地毯过滤器模块
module Haml::Filters::Redcarpet
include Haml::Filters::Base
include ActionView::Helpers::TagHelper
def render(text)
options = [:autolink, :smart, :hard_wrap, :no_intraemphasis]
content_tag(:div, Redcarpet.new(text.to_s, *options).to_html.html_safe, :class => "markup" )
end
end
在开发中效果很好。但在生产中,它正在抛出
[ !EXCEPTION! ] NoMethodError: undefined method 'content_tag' for Haml::Filters::Redcarpet:Module
为什么会这样?或者我可以检查什么?我什至在生产环境中运行控制台,并且能够包含 TagHelper 并使用这些方法。不解……
【问题讨论】:
-
请同时发布您的 /config/environments/production.rb 和 development.rb 文件 - 两个环境之间可能存在差异,从而导致问题。
-
我用 2 个配置做了一个馅饼。 pastie.org/2142973
-
另外,开发环境是 OSX/WEBrick,生产环境是 Debian/Passenger
-
开发机器和生产机器上的 Rails 版本是否相同?
-
所以我将 cache_classes 设置为 false,现在它可以工作了。为什么缓存我的类会阻止包含该助手?
标签: ruby-on-rails haml production-environment