2016-12-24 71 views
0

所以我有一個名爲模型的項目,它有一個名爲price的列。我假設列將作爲實例變量存儲在模型中,但方法如何從模型導軌訪問屬性

def price 
    @price 
end 

什麼也沒有返回。所以我的問題是如何從模型內部訪問價格?

額外的信息 我這樣做的理由是項目有時有特價,所以我希望有一個方法價格來檢查特價和改變價格,如果一個特殊的是活動的,離開它單獨如果沒有,像

def price 
    check_for_special 
    @price 
end 
+0

請編輯您的原始問題,而不是創建一個新的問題。 – Iceman

回答

1

ActiveRecord自動生成與數據庫字段關聯的setter和getter方法。 price將是同名字段的getter方法。

通過添加price方法,您已覆蓋由ActiveRecord創建的方法。在覆蓋現有方法時,您可以通過調用super來訪問原始方法。所以,你可以這樣:

def price 
    check_for_special 
    super 
end 

不過,我不建議這樣做,因爲你通常需要剛開價值,而不總是調用其他方法的方法。所以

def price_with_check 
    check_for_special 
    price 
end