正确的方式定义一个关联,以便我可以通过关联改变数据

时间:2012-03-27 01:09:25

标签: ruby-on-rails

我做错了,它是在我试图改变数据的方法或我定义关联的方式。

class Hive
  has_many :bees, :dependent => :destroy
end

class Bee
  belongs_to :hive
  attr_accessor :alive, :name
end

>h = Hive.create()
>h.bees.where(:alive => false).count = 100 #created from after_initialize
>h.bees.where(:alive => false).each {|b|b.name="Walter"} 
>h.bees.where(:name => "Walter").count = 0

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题......

h.bees.each do |bee|
  bee.name = "Walter"
  bee.save!
end

如果没有验证

validates_uniqueness_of :name

答案 1 :(得分:2)

尝试在块内调用save()来保留更改。