我在我的应用程序中遇到问题,其中控制器正在调用方法并且服务器报告该方法不存在。
这是方法调用。无效的方法是tag.related_tags
@related_tags = @tags.collect { |tag| tag.related_tags }.flatten.uniq
Tag模型最初是在插件act-as-taggable-on中定义的。然后将其扩展到包含它的插件community_engine中。然后最后它在我的app目录中再次扩展。 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'
答案 0 :(得分:1)
查看您提到的两个插件的代码,我认为模型层次结构并不像您期望的那样。 CommunityEngine标记模型不会扩展ActsAsTaggableOn::Tag
。因此,您正在使用的Tag对象没有定义related_tags
方法。