1

レールに組み込まれている効果があるかどうかは誰にも分かりvalidates_signularity_of :stringますか?このようなドキュメントは見つかりませんでしたが、確認したかっただけです。ユーザーが入力できる文字列が常に単数形であることを検証したいと思います。

4

1 に答える 1

1

方法の 1 つは、メソッドを活用するsingularizeことです。

文字列を単数化しても同じ文字列になる場合、その文字列は既に単数形です。それ以外は複数です。

次のようなカスタム バリデータが機能する場合があります。

class SingularValidator < ActiveModel::EachValidator
  def validate_each(object, attribute, value)
    unless value.to_s.singularize == value
      object.errors[attribute] << (options[:message] || "is not singular") 
    end
  end
end

次に、モデルで:

validates :column_name, :singular => true

クレジット: Ryan の Railscast #211 から抽出されたカスタム バリデータの基本構造

于 2012-04-04T18:49:34.957 に答える