2012-09-08 139 views
3

我有一個數據庫項目和兩個項目。他們有列名爲「流行」,我設置爲0.如何更新模型屬性的值

class Item < ActiveRecord::Base 
    attr_accessible .. :popularity, .. 

    before_create :default_values 
    def default_values 
    if self.popularity.nil? == true || self.popularity.blank? == true || self.popularity.class != Integer 
     self.popularity = 0 
    end 
    end 

如何通過代碼\ console更改此值並保存它? 我試過

Item.find(1).popularity = 1 
    Item.save 

但它沒有保存我的val。怎麼了?

+0

爲簡潔起見:'Item.find(1).tap {|項目| item.popularity = 1} .save' – apneadiving

回答

7

這裏是解決

item = Item.find(1) 
item.popularity = 1 
item.save 
+0

謝謝。但爲什麼我的方法錯了?這是不一樣的? – AKovtunov

+1

沒有你的是不一樣的,因爲你正在運行保存類不應該是這樣,因爲你只更改它的一個實例。 – abhas

+0

但是當我寫Item.find(1).save它沒有保存VAL太 – AKovtunov

1
item = Item.first 
item.popularity = 1 
item.save