0
我在3個模型中使用了此方法,因此我想提取它並乾燥。我也遇到了attr默認值的問題。當字段爲空時,它將被評估爲空字符串""
而不是nil
,所以我必須在方法中寫入條件以避免將「http」添加到空字符串。Rails:對多個模型使用相同的自定義驗證方法
我應該在哪裏放置該方法,以及如何將它包含在模型中?
我應該優化該方法嗎?如果是這樣,我在哪裏以及如何將默認attr值設置爲nil
(rails/db/both)?
before_validation :format_website
def format_website
if website == ""
self.website = nil
elsif website.present? && !self.website[/^https?/]
self.website = "http://#{self.website}"
end
end
potashin,然後只需從'before_validation:format_website'調用每個模型? –
@SzilardMagyar:是的 – potashin
potashin,讓我再問一個問題。這種方法是否足夠好,或者我應該用這個'nil'和'''''問題做點什麼? –