オプションのフォームフィールド:meetup_apikey
とカスタム検証メソッドapi_key_valid?
を使用して、返されたAPIリクエストが成功したかどうかを確認します。しかし、meetup_apikey
フォームフィールドが空でない(ユーザーがフォーム送信時に何かを入力した)場合にのみ、検証をチェックしたいと思います。 meetup_apikey
フォームフィールドが空の場合は、検証を無視してフォームを保存できるようにしたいと考えています。オプションのフォームフィールドを検証する方法は?
見てください:http://guides.rubyonrails.org/v2.3.11/activerecord_validations_callbacks.htmlドキュメントとValidation to ensure uniqueness of but ignoring empty values?。
validates :meetup_apikey, allow_blank: true
validates :api_key_valid?, :if => :meetup_apikey
def api_key_valid?
url = "https://api.meetup.com/2/events?key=#{meetup_apikey}&sign=true&photo-host=public&group_urlname=#{meetup_urlname}"
if !HTTParty.get(url).success?
errors.add(:meetup_apikey, "Meetup API key must be valid")
end
end
しかし、これはまだ何も:meetup_apikey
フォームフィールドに入力されていない場合でも、チェックを強制的に:
は、これは私が私のモデルに持っているものです。私は何が欠けているのか間違っているのか分かりません。
提案があれば助かります。ありがとう!ここで
あなたは、そのプレゼンス( '「」.presentをテストするために、属性名の後に疑問符を追加することができます' 'false'を返します)。 'validates:api_key_valid ?,:if =>:meetup_apikey?' – MrYoshiji
ありがとうございます。よろしくお願いします。 – teresa