简体   繁体   English

使用Rails 5和as-taggable-on 4时无法运行rspec

[英]Can't run rspec when using Rails 5 and acts-as-taggable-on 4

Versions 版本

  • Ruby: 2.3.3 红宝石:2.3.3
  • Bundler: 1.14.6 捆绑器:1.14.6
  • Rails: 5.0.2 滑轨:5.0.2
  • acts-as-taggable-on: 4.0.0 可标记行为:4.0.0
  • Rspec: 3.5.4 R规格:3.5.4

Gemfile 的Gemfile

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem 'acts-as-taggable-on', '~> 4.0'

group :development, :test do
  gem 'rspec-rails', '~> 3.5'
end

Logic 逻辑

lib/acts_as_taggable_on/generic_parser.rb LIB / acts_as_taggable_on / generic_parser.rb

class MyParser < ActsAsTaggableOn::GenericParser
  def parse
    ActsAsTaggableOn::TagList.new.tap do |tag_list|
      tag_list.add @tag_list.split(',').map(&:strip).reject(&:empty?)
    end
  end
end

Exception 例外

When running rpsec , got these errors: 运行rpsec ,出现以下错误:

/Users/user/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:94:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'acts-as-taggable-on'. (Bundler::GemRequireError)
Gem Load Error is: uninitialized constant ActsAsTaggableOn::GenericParser

How to fix it? 如何解决?

Your file name is incorrect, you have 您的文件名不正确,您有

lib/acts_as_taggable_on/generic_parser.rb

If the class is MyParser Rails need to map to that class via the name of the file which should be my_parser.rb and thus it should be 如果该类是MyParser,Rails需要通过文件名my_parser.rb映射到该类,因此它应该是

lib/acts_as_taggable_on/my_parser.rb

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM