2011-10-27 65 views
2

我想設置我自己的方法來覆蓋數據庫屬性,以便我可以截取數據庫值爲null的值。訪問數據庫值分開到Activerecord訪問器

Rails似乎允許我設置一個與數據庫列名稱相同的方法,但是我需要一種替代方法來訪問數據庫值來返回我想要的。

想象一下,我有一個數據庫列「日期」,我想在數據庫中爲空時將其設置爲其他內容。

我想設置方法如下

def date 
if (alternative_db_value_object).date == nil 
    "Put this" 
else 
    "Put that" 
end 
end 

或者我將不勝感激,如果任何人都可以提出這樣做​​的更好的方法。

回答

4

..「日期」的方法中,您可以使用

self[:date] 

read_attribute(:date) 

UPDATE:看來這並沒有在軌道上5。一個工作了,應該使用super

def length=(minutes) 
    super(minutes.to_i * 60) 
end 

def length 
    super/60 
end 
+0

此方法已被刪除! 任何替代品? http://apidock.com/rails/ActiveRecord/AttributeMethods/Read/read_attribute –

+0

...給你一個更新;) – moritz