我在这里做错了什么?我只是想让设计与Edge Rails应用程序一起工作。我收到错误“不支持直接从ActiveRecord :: Migration继承”。 使用here中描述的技术来制作滑轨骨架 设计安装步骤主要来自https://github.com/plataformatec/devise/blob/master/README.md
$ cd /tmp
$ ruby --version
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
$ rbenv shell 2.5.1
$ ruby --version
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
$ echo "source 'https://rubygems.org'" >> Gemfile
$ echo "gem 'rails', git: 'https://github.com/rails/rails.git'" >> Gemfile
$ bundle install
Fetching https://github.com/rails/rails.git
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 12.3.1
Using concurrent-ruby 1.0.5
Using i18n 1.1.0
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.4
Using rails-dom-testing 2.0.3
Using crass 1.0.4
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using rack 2.0.5
Using rack-test 1.1.0
Using actionpack 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using nio4r 2.3.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using globalid 0.4.1
Using activejob 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using mini_mime 1.0.1
Using mail 2.7.0
Using actionmailer 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using activemodel 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using activerecord 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using mimemagic 0.3.2
Using marcel 0.3.3
Using activestorage 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using bundler 1.16.2
Using method_source 0.9.0
Using thor 0.20.0
Using railties 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 6.0.0.alpha from https://github.com/rails/rails.git (at master@0627442)
Bundle complete! 1 Gemfile dependency, 40 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
$
$
$ bundle exec rails new . --dev --force
exist
create README.md
create Rakefile
create .ruby-version
create config.ru
create .gitignore
force Gemfile
run git init from "."
Initialized empty Git repository in /private/tmp/.git/
create package.json
create app
create app/assets/config/manifest.js
create app/assets/javascripts/application.js
create app/assets/javascripts/cable.js
create app/assets/stylesheets/application.css
create app/channels/application_cable/channel.rb
create app/channels/application_cable/connection.rb
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/jobs/application_job.rb
create app/mailers/application_mailer.rb
create app/models/application_record.rb
create app/views/layouts/application.html.erb
create app/views/layouts/mailer.html.erb
create app/views/layouts/mailer.text.erb
create app/assets/images/.keep
create app/assets/javascripts/channels
create app/assets/javascripts/channels/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/rails
create bin/rake
create bin/setup
create bin/update
create bin/yarn
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/cable.yml
create config/puma.rb
create config/storage.yml
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/application_controller_renderer.rb
create config/initializers/assets.rb
create config/initializers/backtrace_silencers.rb
create config/initializers/content_security_policy.rb
create config/initializers/cookies_serializer.rb
create config/initializers/cors.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/new_framework_defaults_6_0.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/master.key
append .gitignore
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/apple-touch-icon-precomposed.png
create public/apple-touch-icon.png
create public/favicon.ico
create public/robots.txt
create tmp
create tmp/.keep
create tmp/cache
create tmp/cache/assets
create vendor
create vendor/.keep
create test/fixtures
create test/fixtures/.keep
create test/fixtures/files
create test/fixtures/files/.keep
create test/controllers
create test/controllers/.keep
create test/mailers
create test/mailers/.keep
create test/models
create test/models/.keep
create test/helpers
create test/helpers/.keep
create test/integration
create test/integration/.keep
create test/test_helper.rb
create test/system
create test/system/.keep
create test/application_system_test_case.rb
create storage
create storage/.keep
create tmp/storage
create tmp/storage/.keep
remove config/initializers/cors.rb
remove config/initializers/new_framework_defaults_6_0.rb
run bundle install
Fetching https://github.com/rails/web-console.git
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies....
Using rake 12.3.1
Using concurrent-ruby 1.0.5
Using i18n 1.1.0
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.4
Using rails-dom-testing 2.0.3
Using crass 1.0.4
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using rack 2.0.5
Using rack-test 1.1.0
Using actionpack 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using nio4r 2.3.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using globalid 0.4.1
Using activejob 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using mini_mime 1.0.1
Using mail 2.7.0
Using actionmailer 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using activemodel 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using activerecord 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using mimemagic 0.3.2
Using marcel 0.3.3
Using activestorage 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using public_suffix 3.0.3
Using addressable 2.5.2
Using io-like 0.3.0
Using archive-zip 0.11.0
Using bindex 0.5.0
Using bundler 1.16.2
Using byebug 10.0.2
Using xpath 3.1.0
Using capybara 3.8.1
Using ffi 1.9.25
Using childprocess 0.9.0
Using chromedriver-helper 2.1.0
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using coffee-script 2.4.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using coffee-rails 4.2.2
Using multi_json 1.13.1
Using jbuilder 2.7.0
Using rb-fsevent 0.10.3
Using rb-inotify 0.9.10
Using ruby_dep 1.5.0
Using listen 3.1.5
Using puma 3.12.0
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using rubyzip 1.2.2
Using sass-listen 4.0.0
Using sass 3.6.0
Using tilt 2.0.8
Using sass-rails 5.0.7
Using selenium-webdriver 3.14.0
Using sqlite3 1.3.13
Using turbolinks-source 5.2.0
Using turbolinks 5.2.0
Using uglifier 4.1.19
Using web-console 3.7.0 from https://github.com/rails/web-console.git (at master@a46d9ff)
Bundle complete! 15 Gemfile dependencies, 73 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
run bundle binstubs bundler
$
$
$
$
$ bundle exec rails server
=> Booting Puma
=> Rails 6.0.0.alpha application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
Started GET "/" for 127.0.0.1 at 2018-09-24 13:36:08 -0700
(1.7ms) SELECT sqlite_version(*)
Processing by Rails::WelcomeController#index as HTML
Rendering /Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534/railties/lib/rails/templates/rails/welcome/index.html.erb
Rendered /Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534/railties/lib/rails/templates/rails/welcome/index.html.erb (6.9ms)
Completed 200 OK in 17ms (Views: 10.8ms | ActiveRecord: 0.0ms)
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2018-09-24 13:36:12 -0700 ===
- Goodbye!
Exiting
$
$
$ # Yay! You’re on Rails!
$
$
$
$ echo 'gem "devise"' >> Gemfile
$ bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 12.3.1
Using concurrent-ruby 1.0.5
Using i18n 1.1.0
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.4
Using rails-dom-testing 2.0.3
Using crass 1.0.4
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using rack 2.0.5
Using rack-test 1.1.0
Using actionpack 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using nio4r 2.3.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using globalid 0.4.1
Using activejob 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using mini_mime 1.0.1
Using mail 2.7.0
Using actionmailer 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using activemodel 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using activerecord 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using mimemagic 0.3.2
Using marcel 0.3.3
Using activestorage 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using public_suffix 3.0.3
Using addressable 2.5.2
Using io-like 0.3.0
Using archive-zip 0.11.0
Using bcrypt 3.1.12
Using bindex 0.5.0
Using bundler 1.16.2
Using byebug 10.0.2
Using xpath 3.1.0
Using capybara 3.8.1
Using ffi 1.9.25
Using childprocess 0.9.0
Using chromedriver-helper 2.1.0
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using coffee-script 2.4.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using coffee-rails 4.2.2
Using orm_adapter 0.5.0
Using responders 0.6.5
Using warden 1.2.7
Using devise 4.5.0
Using multi_json 1.13.1
Using jbuilder 2.7.0
Using rb-fsevent 0.10.3
Using rb-inotify 0.9.10
Using ruby_dep 1.5.0
Using listen 3.1.5
Using puma 3.12.0
Using sprockets 3.7.2
Using sprockets-rails 3.2.1
Using rails 6.0.0.alpha from source at `/Users/user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/bundler/gems/rails-06274428e534`
Using rubyzip 1.2.2
Using sass-listen 4.0.0
Using sass 3.6.0
Using tilt 2.0.8
Using sass-rails 5.0.7
Using selenium-webdriver 3.14.0
Using sqlite3 1.3.13
Using turbolinks-source 5.2.0
Using turbolinks 5.2.0
Using uglifier 4.1.19
Using web-console 3.7.0 from https://github.com/rails/web-console.git (at master@a46d9ff)
Bundle complete! 16 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
$
$
$
$
$
$
$
$
$ bundle exec rails generate devise:install
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Some setup you must do manually if you haven't yet:
1. Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
$
$
$
$
$
$ bundle exec rails generate devise User
invoke active_record
create db/migrate/20180924203813_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
$
$
$
$
$
$ bundle exec rails server
=> Booting Puma
=> Rails 6.0.0.alpha application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
Started GET "/" for 127.0.0.1 at 2018-09-24 13:38:24 -0700
(1.4ms) SELECT sqlite_version(*)
ActiveRecord::PendingMigrationError (
Migrations are pending. To resolve this issue, run:
rails db:migrate RAILS_ENV=development
):
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2018-09-24 13:38:31 -0700 ===
- Goodbye!
Exiting
$
$
$
$ # ActiveRecord::PendingMigrationError
$
$ bundle exec rake db:migrate
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
class DeviseCreateUsers < ActiveRecord::Migration[4.2]
/private/tmp/db/migrate/20180924203813_devise_create_users.rb:3:in `<top (required)>'
/Users/user/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/Users/user/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Caused by:
StandardError: Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
class DeviseCreateUsers < ActiveRecord::Migration[4.2]
/private/tmp/db/migrate/20180924203813_devise_create_users.rb:3:in `<top (required)>'
/Users/user/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
/Users/user/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
$
答案 0 :(得分:1)
似乎devise
宝石与您正在使用的Rails版本(6.0.0.alpha
)不兼容
它知道的最新的Rails是Rails 5
:
由于您使用的是6.0.0.alpha
,因此它会创建迁移而未指定预期的Rails版本。在现代的Rails中不允许这样做,因此会引发错误消息并阻止迁移运行。
————————————————————————————
您正在使用的edge
Rails
版本看起来非常不成熟,尚未准备好投入生产。甚至他们的发行说明也没有完成,并且在Github上有很多指向不存在的变更日志的无效链接:
https://edgeguides.rubyonrails.org/6_0_release_notes.html
我建议暂时不要使用此版本,并保持最新的稳定发行版(今天是5.2.1
)。
替换
echo "gem 'rails', git: 'https://github.com/rails/rails.git'" >> Gemfile
使用
echo "gem 'rails', '~> 5.2.0'" >> Gemfile
解决了该问题。
答案 1 :(得分:0)
嗯,您运行rails db:migrate RAILS_ENV=development
吗?