我有一個ActiveRecord模型,Instance
,它基於數據庫,但有一些非數據庫屬性。Rails ActiveRecord非數據庫屬性?
一個例子是「分辨率」。
我需要能夠設置/獲取分辨率,但此屬性需要自定義非db設置者/獲取者。我在哪裏放置這些&如何構建我的模型?
我還需要能夠驗證分辨率,因爲它們是通過正則表達式設置的。我可以使用validates_format_of
還是需要編寫自定義驗證器?
我有一個ActiveRecord模型,Instance
,它基於數據庫,但有一些非數據庫屬性。Rails ActiveRecord非數據庫屬性?
一個例子是「分辨率」。
我需要能夠設置/獲取分辨率,但此屬性需要自定義非db設置者/獲取者。我在哪裏放置這些&如何構建我的模型?
我還需要能夠驗證分辨率,因爲它們是通過正則表達式設置的。我可以使用validates_format_of
還是需要編寫自定義驗證器?
如果您需要標準讀/寫器的方法,你可以使用attr_accessor
:
class Instance
attr_accessor :resolution
end
你也可以自己寫的讀寫器方法:
class Instance
def resolution
@resolution
end
def resolution=(value)
@resolution = value
validate! # this will raise RecordInvalid if the validation fails
end
end
你是如何「結構」的模型?添加方法。 –
您可以像驗證每個常規屬性一樣驗證虛擬屬性 - http://stackoverflow.com/a/9749292/429758 –
似乎沒有爲我工作;我已經在編寫器方法之外使用了'validates_format_of:resolution,其中:\ \ d + x + \ d + /',但它似乎被忽略。我需要寫一些具體的東西嗎? – cjm2671