种子 - 创造也不节省不工作

时间:2011-12-21 00:54:42

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

这确实有效:

result.each do |f|
  rt=ResTypes.new #( :type=>f['type'] )
  rt.type=f['type']
  rt.save()
end

这不起作用:

result.each do |f|
  ResTypes.create( :type => f['type'] )
end

也不是这样:

result.each do |f|
  rt=ResTypes.new( :type => f['type'] )
  rt.save()
end

为什么不是第二种或第三种方式?

THX

编辑#1

这确实有效:

t=IO.read('db/seed-data/list-types.json')
lt_results=JSON.parse(t)
lt_results.each do |i|
  l=ListType.create(i)
end

2 个答案:

答案 0 :(得分:0)

可能与该属性无法进行批量分配有关。除此之外,它看起来应该有效。

答案 1 :(得分:0)

我可以确认Maletor建议的内容,type属性默认情况下不可批量分配。这是因为它被设置为Active Record中的inheritance_column,它用于单表继承。该字段通常由STI自动设置。

要使其分配,请在模型中设置:

class ResTypes < ActiveRecord::Base
  self.inheritance_column = nil
end