Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails &引用;发生错误,此迁移和所有后续迁移已取消";添加ExtUserMail后_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails &引用;发生错误,此迁移和所有后续迁移已取消";添加ExtUserMail后

Ruby on rails &引用;发生错误,此迁移和所有后续迁移已取消";添加ExtUserMail后,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我正在学习关于模特用户的电子书(第6章)。我正在尝试通过运行以下命令向用户电子邮件添加索引: rails generate migration add_index_to_users_email 这给了我db/migrate/[timestamp]\u将\u索引添加到\u users\u email.rb文件: class AddIndexToUsersEmail < ActiveRecord::Migration def change add_index :users, :e

我正在学习关于模特用户的电子书(第6章)。我正在尝试通过运行以下命令向用户电子邮件添加索引:

rails generate migration add_index_to_users_email
这给了我
db/migrate/[timestamp]\u将\u索引添加到\u users\u email.rb
文件:

class AddIndexToUsersEmail < ActiveRecord::Migration
  def change
    add_index :users, :email, unique: true # I add this line
  end
end
这是我的Gemfile顺便说一句:

source 'https://rubygems.org'

gem 'rails',        '4.2.0'
gem 'bootstrap-sass', '3.2.0.0'
gem 'sass-rails',   '5.0.2'
gem 'uglifier',     '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks',   '2.3.0'
gem 'jbuilder',     '2.2.3'
gem 'sdoc',         '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace', '0.1.3'
  gem 'guard-minitest', '2.3.1'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end

如何解决此问题?

您可能正在执行迁移,而rails控制台处于打开状态。因此,您需要在打开的rails控制台程序中执行以下命令:

ActiveRecord::Base.connection.execute("BEGIN TRANSACTION; END;")

可能是在rails控制台打开时执行迁移。因此,您需要在打开的rails控制台程序中执行以下命令:

ActiveRecord::Base.connection.execute("BEGIN TRANSACTION; END;")

这与会话问题有关,请检查其他会话是否已打开rails s或rails c。关闭它们将解决问题。

这与会话问题有关,请检查rails s或rails c是否打开了其他会话。关闭它们将解决问题。

我退出rails控制台,它现在可以工作了。谢谢那么请将此作为回答。我退出rails控制台,它现在正在工作。谢谢那么请将此作为回答。我退出rails控制台,它现在正在工作。谢谢你不必!您可以在rails控制台打开的情况下使用它。这就是我在回答中写的。我退出rails控制台,它现在可以工作了。谢谢你不必!您可以在rails控制台打开的情况下使用它。这就是我在回答中写的。