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

标签 ruby-on-rails ruby testing rspec acts-as-taggable-on

版本

  • ruby :2.3.3
  • bundler :1.14.6
  • rails :5.0.2
  • 作为可标记对象:4.0.0
  • Rspec:3.5.4

gem 文件

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

逻辑

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

异常

运行 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

如何解决?

最佳答案

你的文件名不正确,你有

lib/acts_as_taggable_on/generic_parser.rb

如果类是 MyParser Rails 需要通过文件名映射到该类,文件名应该是 my_parser.rb,因此它应该是

lib/acts_as_taggable_on/my_parser.rb

关于ruby-on-rails - 使用 Rails 5 和 acts-as-taggable-on 4 时无法运行 rspec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951227/

相关文章:

mysql - 使用 Raw mysql 从 ruby​​ on rails 检索数据得到意外

ruby-on-rails - 在数据库中存储 Rails 3 路由

ruby-on-rails - 添加内联类 if ...(在 1 行中)

c# - 为 SpecBind 设置 Selenium Web 驱动程序

Android Espresso 断言问题

ruby-on-rails - Rails 相关模型以 "NameError uninitialized constant"退出

ruby-on-rails - 服务对象的 Rails 名称约定

ruby-on-rails - 在 rails 中使用 send_file

ruby - 使用 Ruby 的数据驱动开发框架

reactjs - 使用 Jest 和 Enzyme 测试 React 组件 : where to test whether component props were given