0

タグ付けが開発マシンで正常に機能するという奇妙な問題が発生していますが、運用サーバーにデプロイすると、ログに次のエラーが表示されます。

ActionView::TemplateError (undefined method `tags' for #<Person:0x98bb9d4>) on line...  

production.log ファイルには、has_many_polymorphs が読み込まれていることを示すエントリがあるため、実稼働マシンでプラグインが利用できないわけではありません。

私のGoogle-fuは答えを見つけようとして失敗しました。誰かが何が間違っているのか知っていれば、それは大歓迎です!

編集:本番と開発の両方で同じデータベースを使用していることに言及する必要がありました。製品版をダウンロードして開発マシンで使用したところ、正常に動作しました。

4

4 に答える 4

0

cap deploy:移行

于 2008-11-19T17:54:11.573 に答える
0

ポリモーフィック型フィールドが正しく入力されていない、またはポリモーフィック型タグが追加される前に既存のデータがあった場合に、これと同様の問題を見てきました。person はサブクラスですか? polymorphs テーブルの _type フィールドに null 値が含まれていますか?

于 2008-11-19T22:34:24.063 に答える
0

ここで暗に突き刺すだけですが、has_many_polymorphs はモデルにタグ付け機能をネイティブに追加しません。代わりに、ジェネレーターを使用して、lib/tagging_extensions.rb に入るタグ付け拡張モジュールを作成します。モジュール ファイルには、has_many_polymorphs 基本機能の上に構築されたタグ付け関数を追加するヘル​​パー メソッドがあります。

プラグインはインストールされているのに、タグ付け拡張ファイルがインストールされていない可能性はありますか?

于 2008-12-03T10:49:41.660 に答える
0

コンサルタントと一緒にこれを追跡するのにしばらく時間を費やしましたが、最終的に、理由は不明ですが、タグ付けの機能がロードされていないことがわかりました.

environment.rb の末尾に 3 文字だけの 1 行のコードを追加することで解決しました。wtfが起こっていたことを決して忘れないようにコメントしました:

# Magic begins here.
# We need to force Rails to load the Tag record, or 
# has_many_polymorphs doesn't work properly. I don't know
# if there's a better fix, but this one seems reasonable. :-/
Tag

それだけでした。これにはエレガントで適切な解決策があると確信していますが、これは機能します。変。

これが誰かに役立つことを願っています。

于 2009-01-04T14:26:49.707 に答える