acts_as_taggable_on Gem 不适用于 Rails 5

acts_as_taggable_on Gem not working for Rails 5

我制作了一个 rails 应用程序并添加了 acts-as-taggable-on gem、运行 rake db:migrate 并将该字段添加到 Article.rb.我似乎在 rail 5.1 应用程序中遇到了这个错误。我不知道它是什么。

GemFile

gem 'acts-as-taggable-on', '~> 4.0'

Article.rb

class Article < ApplicationRecord
    include TheComments::Commentable

     acts_as_taggable_on :tags

        belongs_to :user

      # Denormalization methods
      # Check the documentation for information on advanced usage
        def commentable_title
        title
      end

      def commentable_url
        ['', self.class.to_s.tableize, id].join('/')
      end

      def commentable_state
        :published.to_s
      end
    end

但是我得到这个错误:

Running via Spring preloader in process 18395
Loading development environment (Rails 5.1.2)
2.4.0-rc1 :001 > Article
NoMethodError: undefined method `acts_as_taggable_on' for Article (call 'Article.connection' to establish a connection):Class
    from app/models/article.rb:6:in `<class:Article>'
    from app/models/article.rb:1:in `<top (required)>'
    from (irb):1
2.4.0-rc1 :002 > Article
NoMethodError: undefined method `acts_as_taggable_on' for Article (call 'Article.connection' to establish a connection):Class
    from app/models/article.rb:6:in `<class:Article>'
    from app/models/article.rb:1:in `<top (required)>'

问题的原因与 gem 的版本有关。您使用的 gem 版本不支持 Rails 5.

您可以通过直接从 github 拉取 gem 来解决您的错误。 为此,只需在 gem 文件中使用以下代码:

gem 'acts-as-taggable-on', :git => 'https://github.com/mbleigh/acts-as-taggable-on'

他们有没有提到的版本 5。文档说版本 4 适用于 Rails 4 和 5,这是不准确的。我将以下内容添加到我的 Gemfile 并使其正常工作。 GitHub link 是我的参考点。

gem "acts-as-taggable-on", "~> 5.0"

https://github.com/mbleigh/acts-as-taggable-on/issues/866