複数のフォーム要素を 1 つの場所に表示する必要がある状況がよくあります。例えば:
<%= simple_form_for @user do |f| %>
<%= f.input :active_from do %>
<%= f.input_field :active_from %>
to
<%= f.input_field :active_to %>
<% end %>
<% end %>
これが私が現時点で行っている方法です。しかし、このソリューションには 2 つの問題があります。
ラッピング入力の場合、どのフィールド名を渡すか? この例では、最初のものだけを使用しましたが、実際には両方 (つまり ) を渡したいと考えてい
f.input [:active_from, :active_to] do
ます。ただし、問題 2) が別の方法で解決できる場合、これはより表面的なものです。たとえば、これらのフィールドは両方とも必須ですが、これらの両方のエラー メッセージを取得するにはどうすればよいでしょうか? どういうわけか、親要素は、サブ入力の少なくとも 1 つにエラーがあり、メッセージを表示する何らかの方法が必要であることを知る必要があります。多分そのようなもの:
<%= simple_form_for @user do |f| %> <%= f.input :active_from do %> <%= f.input_field :active_from %> <%= f.errors_for :active_from %> to <%= f.input_field :active_to %> <%= f.errors_for :active_to %> <% end %> <% end %>