Rails模型首先保存,然后崩溃

时间:2010-12-23 23:27:36

标签: ruby-on-rails ruby-on-rails-3

我有一个问题。我正在使用Nokogiri解析内容,我的目标是处理这些内容并插入数据库。

Table_rows包含已解析的tr / tr元素,然后我使用Nokogiri的node.content.to_a来获取我想要的td值。

(注意:我需要这个列rec_id,因为我在插入hehehehe时还不知道如何强制id值)

以下代码在尝试保存时会生成异常

  table_rows.each do |row|
    rec_id = row.content.to_a[0].strip.to_i

    if MyModelName.where(:rec_id => rec_id) == []
      MyModelName.init_from_array(row.content.to_a).save
    end

  end

init_from_array包含这样的简单代码:

def self.init_from_array(array)
  @mymodelname = MyModelName.new
  @mymodelname.field1 = array[0].strip #strip to avoid any empty
  @mymodelname.field2 = array[1].strip
  #and so on...
  @mymodelname
end

内部控制器我只是在开始和救援之间调用此方法。 MyModelName暂时没有任何验证。

我遇到了这种行为的错误 - 它生成了“无法回滚,没有事务处于活动状态”但它将记录保存到数据库中。

编辑:

这是例外

SQLite3 :: SQLException:无法回滚 - 没有事务处于活动状态/opt/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/database.rb:97:in从/ opt / local / lib / ruby​​ / gems /关闭'from /opt/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/database.rb:97:inprepare' 1.8 / gems / sqlite3-ruby-1.3.2 / lib / sqlite3 / database.rb:134:执行'从

1 个答案:

答案 0 :(得分:0)

解决了这个问题。

问题在于我的迁移文件。一切都运行没有问题但我有1次迁移用于创建表,然后有3次迁移为该模型添加了字段。我不知道如何或为什么但我删除了所有的迁移并从头开始,现在它保存没有那个错误。

由于