Ruby on rails 4 第一个\u或\u create生成SystemStackError:堆栈级别太深错误
我很难理解为什么first_或_create会给我以下错误 在我的Rails 4.2.0应用程序中,我有一个名为Activity的模型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
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