【发布时间】:2013-01-20 20:02:49
【问题描述】:
我有两个模型,A 和 B 其中A has_many B。
在A 模型中,我有一个公共方法循环遍历所有关联的B 对象并更新每个对象中的数据库字段。我想拥有B 中的方法并只运行A 中的循环,但它们似乎没有正确保存。这种方法有问题吗?
这里是方法的一个例子:
def update_fields # A Method
self.b.each do |b|
b.b_method
end
end
def b_method # B Method
self.field = '5'
self.save
end
运行此类代码,不会将任何内容保存到数据库中,并且输出不会更新。
我怎样才能完成这种事情?或者,是否所有逻辑都需要在 A 控制器中,即使它正在处理 B 字段?
【问题讨论】:
-
您可能只是仔细检查
save没有返回false。如果是,则可能只是某些验证失败。一般的方法当然没有错。
标签: ruby-on-rails ruby-on-rails-3 models