2012-06-16 34 views
2

我在表單上有一個字段,我試圖在相應的模型中訪問,但它不是模型數據庫表的一部分。處理這個問題的最好方法是什麼?這是不好的做法嗎?表單字段不是rails db模型的一部分

+0

什麼是關係在表單字段和數據之間實際存在數據庫表? – bdon

回答

6

可以使模型屬性不在數據庫表中。這些被稱爲虛擬屬性

假設您想要處理一個名爲'virtual_attribute'的屬性。這裏是你將如何處理它:在您的形式

當你有這樣的事情:

<%= f.check_box :virtual_attribute %> 

在你的模型,你就必須做到這一點:

attr_accessor :virtual_attribute 

注意這是一種內置的Ruby方法,它爲您提供該屬性的setter和getter:

#getter 
def virtual_attribute 
    @virtual_attribute 
end 

#setter 
def virtual_attribute=(value) 
    @virtual_attribute = value 
end 
+0

很好的答案 - 謝謝。但是,似乎我的虛擬屬性進入模型null。這是我設置該字段的方式:<%= text_field_tag:discount_code,nil,name:nil,maxlength:「12」,class:「span2」%> – cman77

+0

您可以顯示一些代碼嗎? – Nobita

+0

我會在另一個問題中打開它,因爲我相信它是值得的。 – cman77

相關問題