2011-10-13 36 views
1

寫入數據庫基本上我想繞過如何直接與軌道

def something=(string) 
... 
end 

,做

create!(:something => "direct to database") 

對於我有一個很難繞過這個功能某種原因(我在遷移中使用這個)。 感謝

回答

2

model.update_column(:col, 'value')

+2

http://apidock.com/rails/ActiveRecord/Persistence/update_column(僅適用於Rails 3.1,但這就是我使用的) – montrealmike

3
instance.update_attribute(:something,"direct to database") # bypass validation 

或者

instance.something = "direct to database" 
instance.save(validation = false) 

或者

sql = "UPDATE models SET something = 'direct to database' WHERE id = #{object.id}" 
ActiveRecord::Base.connection.execute(sql) 
+1

的問題不在於驗證(其=覆蓋),那麼你的第二個選項將肯定是不行的。 sql可能只是最好的選擇,將盡快嘗試。謝謝 – montrealmike