Ruby on rails 4 第一个\u或\u create生成SystemStackError:堆栈级别太深错误

Ruby on rails 4 第一个\u或\u create生成SystemStackError:堆栈级别太深错误,ruby-on-rails-4,Ruby On Rails 4,我很难理解为什么first_或_create会给我以下错误 在我的Rails 4.2.0应用程序中,我有一个名为Activity的模型 class CreateActivities < ActiveRecord::Migration def change create_table :activities do |t| t.string :name, :null => false t.timestamps end add_inde

我很难理解为什么first_或_create会给我以下错误

在我的Rails 4.2.0应用程序中,我有一个名为Activity的模型

class CreateActivities < ActiveRecord::Migration
  def change
    create_table :activities do |t|
      t.string :name, :null => false

      t.timestamps
    end

    add_index :activities, :name, :unique => true
  end
end
但是,当我尝试创建记录时,如果不存在,我会得到SystemStackError:堆栈级别太深

我是不是遗漏了什么


谢谢

我在我的应用程序中间歇性地看到了同样的行为。我添加了一些跟踪代码,并且能够暂时确定循环是在回滚调用中发生的!,但在这一点上我不确定。您是否发现了有关您遇到的问题的任何其他信息?我在Rails 4.1.6上使用Ruby 2.1.5
irb(main):004:0> Activity.where(name: 'all').first
  Activity Load (0.2ms)  SELECT  `activities`.* FROM `activities` WHERE `activities`.`name` = 'all'  ORDER BY `activities`.`id` ASC LIMIT 1
=> nil
irb(main):005:0> Activity.where(name: 'all').first_or_create
  Activity Load (0.3ms)  SELECT  `activities`.* FROM `activities` WHERE `activities`.`name` = 'all'  ORDER BY `activities`.`id` ASC LIMIT 1
SystemStackError: stack level too deep
    from /Users/pippo/.rbenv/versions/1.9.3-p327/lib/ruby/1.9.1/irb/workspace.rb:80