3

我经常遇到需要多个表单元素出现在一个地方的情况。例如:

<%= simple_form_for @user do |f| %>
  <%= f.input :active_from do %>
    <%= f.input_field :active_from %>
    to
    <%= f.input_field :active_to %>
  <% end %>
<% end %>

这就是我目前的做法。但是这个解决方案有两个问题:

  1. 对于包装输入,要传递哪个字段名称?在这个例子中,我只拿了第一个,但实际上我想通过两个(即f.input [:active_from, :active_to] do)。但是,如果问题 2) 可以通过其他方式解决,这更像是一种装饰性的事情。

  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 %>
    
4

0 回答 0