私はHAMLでフォームをレンダリングできますが、どのように検証するかはわかりません。ここでHAML - フォーム検証の作成とエラーメッセージの表示方法
は、私がこれまで持っているものです。
#disclosure-form-container
= form_for([:mobile,@disclosure], :html => {:id => "disclosure-form", :remote => true}) do |f|
%p
=f.label :display_as, (t :select_disclosure_type)
=f.select :display_as, options_from_collection_for_select(Disclosure.basics, :display_as, :name, f.object.display_as)
%p
=f.label :notes, (t :notes)
=f.text_area :notes, :class => "#{validation_rules(:free_disclosure_notes)}", :rows => 5 , :id => "disclosure_notes_entry"
= buttonset({:submit_label => (t "buttons.influencers.disclosures.create"),:submit_css_class => "call-to-action",:cancel_url => "#",:direction => :left_to_right})
これには二つのフィールドと[送信]をクリックし、ボタンでフォームをレンダリングします。しかし、人々があまり多くをせずに提出を入力すればどうなりますか?検証コードはどこに置くのですか。このフォームの検証方法を教えてください。
ありがとうございます!
おかげで、しかし何これについて"= {" valid_rules(:free_disclosure_notes)} "、:rows => 5、:id =>" disclosure_notes_entry "....それは検証しようとしているようだが、いいえ? – GeekedOut
少なくとも、いくつかのjs検証があるかもしれませんか? – GeekedOut
私が言ったように、クライアント側の検証は、ユーザーの経験をより良くします。無効なデータの送信を防ぐことはできません。実際の検証はモデルレイヤーで実行されます。コントローラーのアクションで 'Disclosure'といって、' save'が成功したらチェックを保存します。それが大丈夫なら、ユーザーをある挨拶ページにリダイレクトすることができます。そうでない場合(検証に失敗した場合)、フォームを再度表示して、ユーザーにフォームをさらに入力するよう依頼することができます。しかし、再び、それはハム*とは関係ありません! – jdoe