瞎扯淡 rails readonly 使用问题求解!

kaka · 2013年05月23日 · 最后由 kaka 回复于 2013年05月24日 · 2888 次阅读

Order 模型里的一个方法

def self.state_expired
       orders = joins('left join dom on dom.id=order.dom_id').where('dom.state=?', true).readonly(false)
       orders.each{|o| puts o.readonly? }
       orders
end

Order.state_expired 输出结果多是 true

Order.state_expired.readonly(false).each{|o| puts o.readonly? }

输出结果多是

false

为什么在方法调用之后 readonly 才生效

自己回复吧!现在暂时解决问题了 , 在模型加方法

def  readonly?
    false
end

但是就是不知道为什么那样不行...

2 楼 已删除

重写 readonly?方法可以 save 了

#但是就是不知道之前这样不行,不知道为什么
joins(...).where(...).readonly(false)

#2 楼 @cantin

需要 登录 后方可回复, 如果你还没有账号请 注册新账号