react-rails
React ( gem )を使用して既存の Rails アプリケーションを強化しようとしています。
このアプリには、次のコードで作成されたフォームがあります。
<%= form_for @article do |f| %>
<div class="form-group">
<%= f.label :title %>
<%= f.text_field :title %>
</div>
<div class="form-group">
<%= f.label :body %>
<%= f.text_area :body, size: "60x12" %>
</div>
<div class="form-group">
<label><%= f.checkbox :sets_expiration_date %> Sets expiration date</label>
<%= f.date_select :expiration_date, start_year: Date.today.year %>
</div>
<button type="submit" class="btn btn-default">Create</button>
<% end %>
このフォームに次の機能を持たせたい:
- ユーザーがチェックボックスを切り替えると、
expiration_date
フィールドの 3 つのドロップダウン リストが表示または非表示になります。 - ユーザーが送信すると、フォーム データが Ajax 経由でサーバーに送信され、検証と永続化が行われます。
- 検証が失敗すると、関連するラベルと入力フィールドが赤い枠で囲まれます。
- フォーム データが正常に保存されると、フォームが消え、メッセージが表示されます。
最初の試みで目標を達成することができましたが、バニラの HTML コードをたくさん書かなければならないことがわかりました。
これは私にとってがっかりです。特に、 のようにタグごとにname
と属性を指定するのは好きではありません。defaultValue
<input>
<input name="article[title]" defaultValue={this.props.object.title}>
また、フィールドの 3 つのドロップダウン リストを作成するために、かなり長い JavaScript コードを記述する必要がありましたexpiration_date
。
React を使用してそのようなフォームを効率的に構築するにはどうすればよいですか? 良いプラグインはありますか?