В настоящее время у меня есть пара форм, в которых я пытаюсь изменить кнопку, которая отправляет их, в зависимости от того, нахожусь ли я на редактировании или новое действие. У меня были созданы две формы, но это плохо пахло, и теперь я использую только один партиал формы.
В конце моего партиала у меня есть что-то вроде этого в конце моих форм:
<p>
<% if controller.action_name == 'new' %>
<%= f.submit "Create", :class => "pink_button"%> or
<% elsif controller.action_name == 'edit' %>
<%= f.submit "Update", :class => "pink_button"%> or
<% end %>
<%= link_to "cancel", :back %>
</p>
Таким образом, если я при создании нового, на кнопке написано «Создать», а если это обновление, которое пользователь пытается завершить, на кнопке написано «Обновить». Это отлично работает до тех пор, пока форма не будет отправлена и проверка не завершится.
В моем контроллере я ловлю то, что действительно терпит неудачу, вот так:
def update
@list = current_user.lists.find(params[:id])
if @list.update_attributes(params[:list])
redirect_to list_path(@list), :notice => "List '#{@list.name}' updated."
else
render :action => 'edit'
end
end
Таким образом, форма просто повторно визуализируется. Проблема в том, что я больше не нахожусь на пути редактирования. Это означает, что моя кнопка формы больше не отображается.
Есть ли соглашение о том, что я пытаюсь сделать?
Спасибо