私のモデルの1つでは、Web APIからフェッチされた特定の値を設定するbefore_create属性があります。ただし、APIを使用しているときに結果が見つからない場合、このbefore_createはfalseを返し、モデル作成を強制終了します。before_createが失敗したときに警告メッセージを表示しますか?
これはうまくいきますが、警告メッセージも表示して、入力が受け入れられていないことをユーザーに知らせたいと思います。これをどうやってやりますか?
私のモデルの1つでは、Web APIからフェッチされた特定の値を設定するbefore_create属性があります。ただし、APIを使用しているときに結果が見つからない場合、このbefore_createはfalseを返し、モデル作成を強制終了します。before_createが失敗したときに警告メッセージを表示しますか?
これはうまくいきますが、警告メッセージも表示して、入力が受け入れられていないことをユーザーに知らせたいと思います。これをどうやってやりますか?
before_create
は、エラーを報告する適切な場所ではありません。あなたのbefore_create
は値を設定しようとしなければならず、次にバリデーターがそこにあるかどうかを確認しなければなりません。もしバリデーターが値を見つけられなければエラーメッセージなどが出ます。
before_validation :stuff_web_api_value_into_pancakes, :if => :new_record?
validates_presence_of :pancakes
あなたは、もちろん、validates_presence_of
とは異なるバリデータを使用することができ、それは、例示目的のためだけにあります:あなたの属性はpancakes
と呼ばれているのであれば、あなたはこのような何かを持っていると思います。そして、before_validation
hookが正しい順序で起こるようにするには、:if => :new_record?
は新しいモデルを作成するときにのみフックを実行します。
あなたの 'before_create'と他の関連コードを投稿してください。 – s84