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!」を追加することになったとき。ライン - IT BROKE! アプリの中断がこれほど嬉しいことはありませんでした。

したがって、Mongrel と組み合わせて (Mongrel が関連している場合)、このオプションが正確に何をするかを理解するために少し読んでください。答えが得られます。

于 2010-03-28T00:07:56.137 に答える
1

同じ問題を抱えてここに来て、同じことを経験しているすべての人にメモを渡したかっただけです....environment.rbのgemのバージョンを修正することで、この問題を整理することができました

この 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 を実行します

可能であれば、どういうわけか異なる環境で異なる宝石を実行していたのだろうか。

于 2010-06-14T10:54:35.653 に答える
0

運用acts_as_taggable_on_steroidsサーバーに gem がインストールされていますか?

于 2010-03-12T12:28:28.340 に答える