看板 Ruby 關於我們 聯絡資訊
環境: Ruby 1.8.2 Rails 2.0.2 狀況: 假設我有一個資料庫表格叫做 members 裡面有欄位叫 login_times (登入次數,假設目前為 2 ) 我想要每次登入時都把該欄位加1 這問題看起來好像很簡單? 我現在是這樣寫: @member.login_times = @member.login_times + 1 是有加 1 沒錯, 但是這樣是不行的 因為去看他產生的 SQL 語法寫的是 login_times = 3 但我希望他產生出來的 SQL 語法是 login_times = login_times + 1 有差別嗎? 當然有差別, 當該欄位更新的很頻繁時, 前者就會出問題 所以我想問的是, 要怎樣寫才能產生出 SQL 語法是 直接欄位加1 而不是指定新值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.48.138
godfat:有 increment, 不過看起來好像也是產生寫死的數字... 02/18 16:36
godfat:嗯,increment_counter 看起來就會產生你要的了 02/18 16:38
shelary:嗯嗯..謝謝啦..不過一次只能加一個欄位.有一點點不方便 02/18 20:27
zusocfc:why not update_counters :) 02/25 09:05
godfat:rails 還真的是很多長得很像但有點差的 method. 02/25 12:36
isfore:加個 transaction 如何? 04/03 17:12