我经常遇到需要多个表单元素出现在一个地方的情况。例如:
<%= simple_form_for @user do |f| %>
<%= f.input :active_from do %>
<%= f.input_field :active_from %>
to
<%= f.input_field :active_to %>
<% end %>
<% end %>
这就是我目前的做法。但是这个解决方案有两个问题:
对于包装输入,要传递哪个字段名称?在这个例子中,我只拿了第一个,但实际上我想通过两个(即
f.input [:active_from, :active_to] do
)。但是,如果问题 2) 可以通过其他方式解决,这更像是一种装饰性的事情。比如说,这两个字段都是必需的,如何获取这两个字段的错误消息?不知何故,父元素需要知道至少有一个子输入有错误,并且必须有某种显示消息的方式。也许是这样的:
<%= 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 %>