2012-02-21 65 views
0

我是新來的rails。到目前爲止,我很喜歡它,但有幾個小問題(代碼邏輯在PHP中工作,但我不知道如何在Rails中)。Rails 3:鏈接保存方法

例如:

u = User.first 
u.age +=1 
u.save 

即工作,但如果我連鎖它,它會引發錯誤

u = User.first 
u.age+=1.save 

拋出的誤差是未定義的方法 '保存' 1:Fixnum對象

任何幫助表示讚賞。謝謝

回答

1

你可以實現你正在尋找這樣

u.tap { u.age += 1 }.save

雖然這並不一定要更新的屬性,然後保存最佳方式鏈接。爲了做到這一點,我會用update_attribute

u.update_attribute(:age, u.age+1)

1

u.age += 1返回一個沒有save方法的整數。

+0

是的,我想也是如此,因此,在短期,Rails的真的不支持鏈接? – Henson 2012-02-21 03:04:34

+0

取決於你需要什麼樣的鏈接。這不是有效的情況:(像「string」.strip.length或User.where(:age => 20).last是有效的。 – wanghq 2012-02-21 03:14:42