为什么我的更新在每个循环中都失败了?

时间:2010-11-14 13:26:12

标签: ruby-on-rails

users = User.all()

user.each do |u|

  b = get_id_blah()

  u.some_id = b.id
  u.save

end

我收到错误:

ruby-1.8.7-p302@rails3/gems/activemodel-3.0.1/lib/active_model/attribute_methods.rb:364:in `method_missing': private method `update' called for #<User:0x1017b8188> (NoMethodError)

我应该在循环外调用save吗?

2 个答案:

答案 0 :(得分:2)

这可能只是一个错字,但它可以解释你的无方法错误

users = User.all()

user**s**.each do |u|


end

应该是

users = User.all
users.each do |user|
  ....
end

或者只是

User.all.each do |user|
   ...
end

答案 1 :(得分:0)

你确定这是确切的代码吗?听起来你正在调用object.update而不是只调用object.save

顺便说一句,如果你在Ruby中调用函数,则不需要括号: - )