我試圖讓我的代碼保持乾爽。Rails:如何爲驗證和類方法使用單個正則表達式規則?
我想要做的是這樣的:
class User < ActiveRecord::Base
validates :username, format { with: /\A[:alnum:]+\z/}
def self.create_with_username(name)
username = name.match(/\A[:alnum:]+\z/) if name
end
end
我複製正則表達式匹配規則:/\A[:alnum:]+\z/
我的問題是如何讓/\A[:alnum:]+\z/
幹,這樣我可以用它在驗證和.match方法中?到目前爲止,我嘗試了一個類方法,但驗證似乎沒有把它拿起來。當我嘗試使它成爲一個常量時,.match方法不會提取它(可能導致.match方法在類方法中...)
謝謝。
你是幹什麼意思? –
@AvinashRaj幹:不要重複自己。我想將正則表達式規則捕獲到一個對象中,並將其用於驗證,我的.match方法 –
您應該添加一些關於阻止您「按預期方式使用」的問題的信息,例如您得到的錯誤或意外結果。 –