1
我在控制檯中,我有一個名爲line
的模型,其中有一個fontsize
字段。Rails大容量更新
我想,這樣20-25之間的字體設置爲24和以上任何設置爲28和30年代的任何字體設置爲32
正常化我的字體大小如何去質量像這樣從控制檯更新我的數據庫?
我在控制檯中,我有一個名爲line
的模型,其中有一個fontsize
字段。Rails大容量更新
我想,這樣20-25之間的字體設置爲24和以上任何設置爲28和30年代的任何字體設置爲32
正常化我的字體大小如何去質量像這樣從控制檯更新我的數據庫?
(我讀這是東西,你只希望做一次,所以我走了可讀性在性能或簡潔)
假設滑軌> 3,你的模型被稱爲Line
(大寫「L」),你應該做以下事情:
Line.where(:fontsize => (20..25).each {|x| x.update_attribute :fontsize, 24)
Line.where(:fontsize => (26..29).each {|x| x.update_attribute :fontsize, 28)
Line.where(:fontsize => (30..39).each {|x| x.update_attribute :fontsize, 32)
非常感謝。 –
有更好的辦法做同樣的事情,但速度更快: 'Line.update_all({:fontsize => 24},{:fontsize =>(20..25)})'等等 參見[http:// apidock.com/rails/ActiveRecord/Relation/update_all](http://apidock.com/rails/ActiveRecord/Relation/update_all) –
@ MarkGuk的解決方案肯定會更快,但不會運行回調或驗證;這可能是也可能不是你想要的東西... – nickgrim