У меня есть частичная форма _form.html.erb, которая помогает высушить мой код, но мне нужно, чтобы форма имела разные метки в зависимости от того, создаю ли я нового пользователя или обновляю существующего пользователя.
Вот моя форма частичная. Мне не нужно показывать флажок eula во время обновления, и мне также нужно заменить текст кнопки отправки «Создать мою учетную запись» на что-то более подходящее при выполнении обновления.
<% form_for @user do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name, 'Full name' %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :username %><br />
<%= f.text_field :username %>
</p>
<p>
<%= f.label :email, 'Email address' %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :password %><br />
<%= f.password_field :password %>
</p>
<p>
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %>
</p>
<p>
<%= f.check_box :eula %>
<%= f.label :eula, 'I agree to the terms and conditions' %>
</p>
<p><%= f.submit "Create my account" %></p>
<% end %>
Что из следующего является лучшим способом сделать это?
- иметь 2 отдельных части формы, одну для создания и одну для обновления
- иметь 1 частичную форму, но иметь условные метки, основанные на действии (возможно ли это?)
- разделите общую часть на частичную и повторно используйте ее в формах создания и обновления.
Если бы я должен был сделать условную форму, как бы я проверил, какое действие выполняется?