1

コントローラーがメソッドを呼び出し、サーバーがメソッドが存在しないと報告しているアプリケーションで問題が発生しています。

これがメソッド呼び出しです。機能しないメソッドは tag.related_tags です

@related_tags = @tags.collect { |tag| tag.related_tags }.flatten.uniq

Tag モデルはもともとプラグイン act-as-taggable-on で定義されています。その後、それを含むプラグイン community_engine 内で拡張されます。最後に、アプリ ディレクトリで再び拡張されます。メソッド related_tags は、community_engine プラグインの tag.rb ファイル内にあります。

編集:
ここにエラーメッセージがあります

undefined method `related_tags' for #<ActsAsTaggableOn::Tag id: 26, name: "sql">

そしてスタックトレース

c:/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/attribute_methods.rb:260:in `method_missing'
c:/Users/Teddy/railCode/careercup/app/controllers/tags_controller.rb:80:in `show'
c:/Users/Teddy/railCode/careercup/app/controllers/tags_controller.rb:80:in `collect'
c:/Users/Teddy/railCode/careercup/app/controllers/tags_controller.rb:80:in `show'
4

1 に答える 1

1

あなたが言及した 2 つのプラグインのコードを見ると、モデル階層が期待どおりに機能していないと思います。CommunityEngine タグ モデルは拡張されませんActsAsTaggableOn::Tagrelated_tagsしたがって、使用している Tag オブジェクトにはメソッドが定義されていません。

于 2010-07-30T03:32:17.113 に答える