0

アカウントを作成する機能を特定のアクセスコードを持つユーザーに制限しようとしているユーザーサインアップフォームがあります。その特定のコードを検証できるという問題が発生しています。つなぎ合わせることができたコードを含めましたが、機能していません。

#new.html.erb

 <%= f.text_field :access, placeholder: "Access Code", required: "required" %>

#user.rb

validate :check_code
def check_code
  errors.add(:base, 'Try another code') unless User.where(:access == "theAccessCode")
end

誰かがこの検証の代替案を提案できますか?

4

1 に答える 1

0

正しいアクセス コードが 1 つある場合は、代わりに次のようなコードが必要になると思います。

ACCESS_CODE = 'secretCode'
def check_code
  errors.add(:base, 'Try another code') unless self.access == ACCESS_CODE
end

別の方法として、コードを機能させるには、おそらく次のようにする必要があります (ただし、既存のユーザーのクエリはまだ間違っているようです)。

def check_code
  errors.add(:base, 'Try another code') unless User.where(:access => "theAccessCode").exists?
end
于 2013-01-08T22:10:31.190 に答える