2011-10-31 62 views
2

如何填充某些數據庫字段的值,由mysql函數返回?軌道積極記錄字段的db表達式

Yii中(PHP)我寫的東西像

$後> my_time =新CDbExpression( 'NOW()')

我如何能做到這一點使用Rails 3 ActiveRecord的? 感謝

回答

1

你可以得到一個MySQL的函數的結果與select_value

ActiveRecord::Base.connection.select_value('SELECT NOW()') 

也可以運行update()直接存儲的值。

但是,一般不建議在ActiveRecord中使用複雜的數據庫邏輯。

+0

它需要一個額外的查詢到數據庫。但是......如果不再優雅,我會使用這個解決方案。謝謝 – maxs

+0

現在我認爲所有的邏輯都必須放入rails代碼中。 – maxs

+0

現在我認爲所有的邏輯必須放置在rails代碼中。在數據庫中使用外鍵,NOT NULL字段,視圖,觸發器等是個好主意。數據庫必須是「愚蠢的」 - 只有帶索引的表。在這種情況下,最好的方法是使用ruby函數獲取當前時間。 – maxs