Ruby on rails rake db:migrate在迁移gem时中止
我确信这是一个很简单的错误,我就是想不出来。 我正在安装ryanto/acts_as_votable gem,我遇到了以下问题。 也有类似的问题,但我找不到任何可以在rake db:migrate之前实现的修复 档案:Ruby on rails rake db:migrate在迁移gem时中止,ruby-on-rails,ruby,acts-as-votable,Ruby On Rails,Ruby,Acts As Votable,我确信这是一个很简单的错误,我就是想不出来。 我正在安装ryanto/acts_as_votable gem,我遇到了以下问题。 也有类似的问题,但我找不到任何可以在rake db:migrate之前实现的修复 档案: gem 'acts_as_votable', '~> 0.10.0' 那我就 rails generate acts_as_votable:migration rake db:migrate 然后rake被中止,我收到了这个消息 davemc:~/workspace/n
gem 'acts_as_votable', '~> 0.10.0'
那我就
rails generate acts_as_votable:migration
rake db:migrate
然后rake被中止,我收到了这个消息
davemc:~/workspace/newsroom (rating) $ rake db:migrate
RubyDep: WARNING: Your Ruby is outdated/buggy.
RubyDep: WARNING: Your Ruby is: 2.3.0 (buggy). Recommendation: upgrade to
2.3.1.
RubyDep: WARNING: (To disable warnings,
see:http://github.com/e2/ruby_dep/wiki/Disabling-warnings )
rake aborted!
NoMethodError: undefined method `resources' for main:Object
/home/ubuntu/workspace/newsroom/config/routes.rb:5:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:286:in `load'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:286:in `block in load'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:286:in `load'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:55:in `block in load_paths'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:55:in `each'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:55:in `load_paths'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:18:in `reload!'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:41:in `block in updater'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/file_update_checker.rb:81:in `execute'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:42:in `updater'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/routes_reloader.rb:31:in `execute_if_updated'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application/finisher.rb:128:in `block in <module:Finisher>'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/initializable.rb:30:in `instance_exec'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/initializable.rb:30:in `run'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/initializable.rb:59:in `block in run_initializers'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/initializable.rb:58:in `run_initializers'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application.rb:353:in `initialize!'
/home/ubuntu/workspace/newsroom/config/environment.rb:5:in `<top
(required)>'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:292:in `require'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:292:in `block in require'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-
5.1.1/lib/active_support/dependencies.rb:292:in `require'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application.rb:329:in `require_environment!'
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-
5.1.1/lib/rails/application.rb:445:in `block in run_tasks_blocks'
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top
(required)>'
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)
#结束
新错误:
StandardError: An error has occurred, this and all later migrations
anceled:
Directly inheriting from ActiveRecord::Migration is not supported. Please
specify the Rails release the migration was written for:
class ActsAsVotableMigration < ActiveRecord::Migration[4.2]
StandardError:发生了一个错误,此迁移和所有后续迁移都发生了错误
取消:
不支持直接从ActiveRecord::Migration继承。请
指定为其编写迁移的Rails版本:
类ActsAsVotableMigration
您的路由文件不正确
正确代码:
Rails.application.routes.draw do
devise_for :users
root to: "posts#index"
resources :posts
end
我认为问题在于您的routes文件,您在
Rails.application.routes.draw
block之外添加了resources:posts
MyAppName::Application.routes.draw do
#resources
end
NoMethodError:main:对象的未定义方法“资源”
您有资源:在块之外发布。把它放进去
Rails.application.routes.draw do
devise_for :users
root to: "posts#index"
resources :posts
end
修复了我不得不转到db>migrate>“我正在迁移的文件”并添加
class AddMissingIndexes < ActiveRecord::Migration[4.2]
class AddMissingIndexes
请在此处添加您的路由文件。听起来您的gem希望您的ruby版本升级到2.3.1:RubyDep:警告:您的ruby已过时/有缺陷。RubyDep:警告:您的Ruby是:2.3.0(buggy)。建议:升级到2.3.1。
请仔细阅读错误消息,这样您将拒绝回答。是否运行了捆绑安装
?@LiffeyD更正您的路由文件。在街区外。查看我发布的回复感谢一百万我现在收到一个错误,说我需要说明它的编写版本,但我可以访问它,因为它不会迁移它。我会把信息写在上面的代码框中嗨,我用上面的代码修改了我的路由文件,谢谢。如果有帮助,这里有一个到我的c9.io的链接
class AddMissingIndexes < ActiveRecord::Migration[4.2]