私は現在Ruby on Railsで新しく、rails adminという宝石があります。私は妥当性検査を繰り返せないようにしたい、私はそれを一つのメソッドに保存してグローバルにしたいので、私のモデルでは検証フォーマットを呼び出すことができます。rubyで私のモデルのバリデーション(英数字のみ受け入れる方法)
アプリケーションコントローラにdefを追加しましたが、その内部にはグローバルとして宣言していますが、特殊文字を入力すると追加されます。
注:私の検証は英数字のみ許可されているか...
予想される出力アンダースコア:それは文句を言わない入力が英数字でない限り、追加または
質問下線:私のグローバル変数が間違っているの?私はちょうど
モデル
class ActivityType < ApplicationRecord
has_many :activities
validates :name, presence: true, length: { maximum: 20 },
:uniqueness => true,
format: { with: /\A[\w\_]+\z/ }
validates :description, presence: true,
format: { with: /\A[\w]+\z/ }
end
RegexValidations
module RegexValidations
def self.alphanumeric_underscore
{ with: /\A[\w\_]+\z/ }
end
end
'RegexValidations.alphanumeric_underscore'を実行する場合は、それを含める必要はありません。 –
regexvalidations.rbという名前の新しいファイルを作成しましたが、正しいですか? – Angel
はい、 'regex_validations.rb'という名前のファイルを作成してください。おそらく@Sergio Tulentsevは正しいでしょう。まずそれを含めることなく試してみてください。 –