web-dev-qa-db-ja.com

Ruby on Rails forms

私は他のどこにもこの質問を見ることはできません、それは願わくば迅速で簡単なものです。

フォーム(Ruby on Rails)で「必須」などのHTML5バリデーターを使用するにはどうすればよいですか?

たとえば、HTML5検証を使用した場合、この基本フォームはどのように表示されますか?

<%=form_for @testimonial do |t|%> 
<dl>
  <dt><label for="testimonial_rating">Rating</label></dt>
  <dd><%=t.select :rating, Testimonial.ratings%></dd>
  <dt><label for="testimonial_content">Comments</label></dt> 
  <dd><%=t.text_area :content, :rows => 3%></dd>
  <dd><button class="button success">Submit Review</button></dd>
</dl>
<%end%>

サーバー側の検証が依然として必要であることは言うまでもない。

59
LpLrich

ああ、簡単でした:required => true

例:<%=t.text_area :content, :rows => 3, :required => true%>

93
LpLrich

追加するだけで、メールフィールドがある場合は、「パターン」属性を使用してメールの形式を検証することもできます

<%=form.text_field :email, :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}' %>

:)

39
prashantsahni

@prashantsahni回答への追加。また、正規表現パターンの代わりにtype = 'email'を使用すると、erb-templateは次のようになります。

<%= f.email_field :email, id: 'user_email', type:'email', required: true, placeholder: "Email" %>  

html5を使用したフォーム検証の詳細

10
Dmitry Davydov

これは一般的な属性の小さな例であり、required:trueを追加するだけですが、バックエンドでこの検証を適用することを忘れないでください。

<%= f.text_field
    id: "yourID",
    class: "yourCLass",
    placeholder: "Your message",
    maxlength: 14,
    required: true
%>
4

これは、入力フィールドに:required => trueパラメーターを追加することで簡単に実行できます。

例えば

f.text_field :first_name, :required => true
text_field_tag :first_name, nil, :required => true

境界をさらにプッシュすると、入力用のパターンマッチャー(電子メールなど)を追加できます。

f.email_field :email, 'Email', :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}'
4
Trung Lê

新しい構文<%= f.text_field :email, class: "form-control", required: true %>

2
gsumk

他の回答を完了するために、素晴らしい gem html5_validations があります。これは、モデルのActiveRecord Validationsから読み取ったHTML5検証を最大限に活用します。追加のコードは不要で、インストールするだけです。

1
Alex Castaño

何も機能しない場合はこれを使用してください

include_blank: false, required: true
0
Bilal A.Awan