、特定の文字列にならないようにフォームフィールドを検証する必要があります。たとえば、誰かがテキストフィールドに「hello」を入力してフォームを送信した場合、特定の文字列が許可されていないというエラーをスローするにはどうすればよいですか?一貫性のある感じを保つことができるように、javascriptを使用してクライアント側でこれを行うことを回避する方法はありますか?
validates_presence of :field_name, #condition here
、特定の文字列にならないようにフォームフィールドを検証する必要があります。たとえば、誰かがテキストフィールドに「hello」を入力してフォームを送信した場合、特定の文字列が許可されていないというエラーをスローするにはどうすればよいですか?一貫性のある感じを保つことができるように、javascriptを使用してクライアント側でこれを行うことを回避する方法はありますか?
validates_presence of :field_name, #condition here
カスタム検証に合格する必要があります
INVALID_STRING = %W(string1, string2, string3, ... )
def valid_field_name // valid_name
if INVALID_STRING.include?(self.field_name)
errors[:base] << "field_name you enter that not valid." unless self.field_name.blank?
end
end
このメソッドを呼び出す
validate:valid_field_name
Railsでのカスタム検証は非常に簡単です。ここでは、属性「name」が文字列の配列に含まれていない場合にエラーをスローする例を示します。
WHITELIST = %w(string1 string2 otherstring)
validate :name_is_ok
def name_is_ok
unless WHITELIST.include? name
errors[:name] << "is not valid"
end
end