У меня есть часть формы _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 частичную форму, но имеют условные метки, основанные на действии (возможно ли это?)
- делит общую часть на частичную и повторно использует ее в формах создания и обновления
Если бы я делал условную форму, как бы я проверял, какое действие выполняется?