ActiveRecord :: ReadOnlyRecord:ActiveRecord :: ReadOnlyRecord

时间:2015-02-20 18:45:12

标签: ruby-on-rails ruby activerecord

我试图将属性大量更新为我的用户模型, 我正在做:

u = User.with_any_role(:pro, :admin)
u.each {|user| user.update_attributes(is_pro: true)}

但是我收到了这个错误:

ActiveRecord::ReadOnlyRecord: ActiveRecord::ReadOnlyRecord
from /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/persistence.rb:465:in `create_or_update'

WTH?

1 个答案:

答案 0 :(得分:2)

您的with_any_role范围可能指定了连接条件。默认情况下,Rails将连接加载的记录标记为只读。您可以通过调用范围内的readonly(false)来覆盖此行为。

u = User.with_any_role(:pro, :admin).readonly(false)