2012-02-06 56 views
0

我有一個名爲starting_pt的db列,它是一個小數。 我想一個複選框,如果選中,將設置starting_pt = 0.0如果在Rails中選中複選框,則將屬性設置爲0

我已經建立了一個的virt ATTR在我的模型,並把它添加到我設置了

的入店的

attr_acessor :reset 
attr_accessible :reset 

before_create :reset_starting_pt, :if => :reset? 

def reset? 
    @reset == "1" 
end 

def reset_starting_pt 
    @starting_pt = 0.0 
end 

這是假定選中的複選框等於「1」,未選中的等於「0」。

此解決方案不起作用。任何人都可以提供的指導如何做到這一點將是非常有益的,謝謝!

+0

也許我測試錯了?關於如何在控制檯中使用rspec測試這個建議? – Gornik 2012-02-06 19:03:18

回答

0

您可以爲重置創建一個setter方法,當它提供「0」時將重置您的@starting_pt實例變量。

def reset= val 
    @starting_pt = 0.0 if 0 == val.to_i 
end 
+0

我已將此添加到我的模型,它仍然無法正常工作。 – Gornik 2012-02-06 18:43:27

相關問題