1
我有一個模型和一個函數來檢查它是否有效。問題是它總是返回假,即使它是真的。當它是真的時,Rails模型函數會變成false
這是函數:
def is_valid?
if self.active == true && (self.end_date.nil? || self.end_date >= Time.now)
return true
else
return false
end
end
這裏是控制檯輸出:
1.9.2p320 :013 > sd.active == true
=> true
1.9.2p320 :014 > sd.end_date.nil?
=> false
1.9.2p320 :015 > sd.end_date >= Time.now
=> true
1.9.2p320 :016 > (sd.end_date.nil? || sd.end_date >= Time.now)
=> true
1.9.2p320 :017 > sd.active && (sd.end_date.nil? || sd.end_date >= Time.now)
=> true
1.9.2p320 :018 > sd.is_valid?
=> false
1.9.2p320 :019 > sd
=> #<SubscriptionDiscount id: 1, title: "Prueba de descuento", code: "TEST1", monthly_discount: #<BigDecimal:902f748,'0.1E2',9(18)>, yearly_discount: #<BigDecimal:902f4f0,'0.1E3',9(18)>, active: true, end_date: "2012-08-01 00:00:00", created_at: "2012-06-06 00:04:10", updated_at: "2012-06-08 21:57:06">
爲什麼它不工作?我沒看到它。
請幫忙!通過簡化
def is_valid?
active? && (end_date.nil? || end_date >= Time.now)
end
是否仍然吹應用
我做了你說的,它沒有奏效。我改變了功能的名稱,它的工作。不管怎麼說,還是要謝謝你! –
你應該仍然重構功能,因爲我建議:) –
我做到了,因爲你是對的,這是更好的方式。但是通過更改函數的名稱解決了問題。 –