4

拥有一个包含“列表”的应用程序——想想分类广告——每个列表都有一个标签列表。

当我在生产模式下运行应用程序时,以下代码失败,但在开发模式下工作正常

uninitialized constant ActiveRecord::Acts::Taggable::InstanceMethods::TagList
Extracted source (around line #45):

42:         
43:         <span class="listingIndexTags">
44:             Location: [location] | Tags:
45:             <% tag_list = listing.tag_list %>
46:             <% if tag_list != nil %> 
47:                 <% for tag in tag_list %>
48:                     <%= link_to tag.to_s, { :action => "filter_on",

在这个测试用例中我用来启动我的 mongrel 实例的命令行: ruby​​ script/server mongrel -e production

默认为端口 3000。我可以访问应用程序中调用“listing.tag_list”的其他视图。

“.tag_list”由我在这个应用程序中使用的“acts_as_taggable_on_steroids”提供。它作为 gem 安装。

也许我的环境文件很不稳定?

这是我的 development.rb 文件

config.cache_classes = false

config.whiny_nils = true

config.action_controller.consider_all_requests_local = true
config.action_view.debug_rjs                         = true
config.action_controller.perform_caching             = false

config.action_mailer.raise_delivery_errors = true

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  ...took these settings out for this post...
}

而我的 production.rb 文件...

config.cache_classes = true
config.threadsafe!  

config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching             = true

config.cache_store = :mem_cache_store

config.action_mailer.raise_delivery_errors = false

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  ...took these settings out for this post...
}
4

3 回答 3

1

固定的:

好吧,在我不得不(今天)推迟修复这个错误之后,我终于找到了问题的根源。

包含以下行:config.threadsafe!

在我的“production.rb”文件中导致了它。

I finally found it by:
    1. Making my production and development environment files identical
    2. Line-by-line, changing the production environment file until it either:
      a. The app broke in production mode
      b. I was back to my original production file

无论如何,当我要添加“config.threadsafe!”时 线 - 它坏了!我从来没有这么高兴有一个应用程序中断。

因此,结合 Mongrel(如果 Mongrel 甚至相关),稍微阅读一下以了解此选项的确切作用,我将得到我的答案。

于 2010-03-28T00:07:56.137 回答
1

带着同样的问题来到这里,只是想给遇到同样问题的每个人写个便条……我已经通过修复 environment.rb 中的 gems 版本来解决这个问题

改变了这个
config.gem "acts-as-taggable-on", :source => " http://gemcutter.org "

对此:
config.gem "acts-as-taggable-on", :source => " http://gemcutter.org ", :version => '2.0.0.rc1'

并运行 rake gems:install

如果可能的话,我想知道您是否以某种方式在不同的环境中运行不同的 gem。

于 2010-06-14T10:54:35.653 回答
0

acts_as_taggable_on_steroids的生产服务器上安装了 gem 吗?

于 2010-03-12T12:28:28.340 回答