Ruby on Rails:Gemfile问题

时间:2016-10-13 15:01:00

标签: ruby-on-rails ruby rubygems

我想要日期验证,所以我添加了date_validator gem。

我只是输入了命令:

gem install date_validator

然后我能够将相关部分添加到我的模型中,一切都按预期工作 - 无效日期被拒绝。

但是,我也尝试将此gem添加到我的Gemfile中,这会产生以下错误:

/var/www/html/redmine-2.6.5/lib/redmine/core_ext/active_record.rb:42:in `<top (required)>': DateValidator is not a class (TypeError)

为什么会这样?我不明白......宝石工作正常 - 从Gemfile中删除宝石会导致一切都完美无缺。那么为什么只将它添加到Gemfile会导致问题?

这是我的Gemfile:

source 'https://rubygems.org'


gem "will_paginate", "3.1.0" 
gem "nested_form", "0.3.2"
gem "date_validator", "0.9.0"
gem "rails", "3.2.21"
gem "jquery-rails", "~> 3.1.1"
gem "coderay", "~> 1.1.0"
...
...

1 个答案:

答案 0 :(得分:0)

我对redmine并不熟悉,但是这件事发生在你身上。

2.2.0 :022 >   module Me
2.2.0 :023?>   end
 => nil 
2.2.0 :024 > class Me
2.2.0 :025?>   end
TypeError: Me is not a class
    from (irb):24

date_validator gem具有名称为“DateValidator”https://github.com/codegram/date_validator/blob/master/lib/date_validator.rb

的模块

redmine gem的类名为'DateValidator'https://github.com/redmine/redmine/blob/master/lib/redmine/core_ext/active_record.rb

在您的情况下,date_validator gem正确加载并创建模块但redmine无法定义具有相同名称的类。