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"
我制作了一个 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"