'method_missing':未定义的局部变量或方法'has_ancestry'

时间:2013-10-16 14:37:51

标签: ruby-on-rails rails-engines method-missing ancestry

我正在关注如何为嵌套注释设置Ancestry gem的本教程(http://www.tweetegy.com/2013/04/create-nested-comments-in-rails-using-ancestry-gem/)。当我在普通的rails应用程序上运行教程时,它工作正常。当我尝试将评论系统分离到引擎时,我的问题出现了。以下是我的模型:

在引擎中

module CommentThread
  class Comment < ActiveRecord::Base
    has_ancestry
    belongs_to :commentable, :polymorphic => true
  end
end

在主应用中

class Article < ActiveRecord::Base
  has_many :comments, :as => :commentable, class_name: 'CommentThread::Comment'
end

如果我删除has_ancestry,我可以正常访问评论。我按照我在第一个应用程序中所做的那样遵循了教程,但出于某种原因,当我在这个上运行Article.first.comments时,我得到方法遗漏错误。如果我需要提供更多信息以获取帮助,请与我们联系。谢谢。

1 个答案:

答案 0 :(得分:2)

如果您使用的是引擎,则应将祖先放入Gemfile中,并在lib/<your_engine>/engine.rb file中使用它。

<强> LIB / your_engine / engine.rb

require 'ancestry'