У меня в настоящее время есть эти поля (:name :email :password :password_confirmation :image :desktopinfo
) в одной форме. Я бы хотел, чтобы :image
и :desktopinfo
также были на другой странице.
Текущий код для первой формы:
<%= form_for(@user, :html => { :multipart => true }) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>
<%= f.label :image %>
<%= f.file_field :image %>
<%= f.label :desktopinfo, "Desktop Info" %>
<%= f.text_area :desktopinfo %>
<%= f.submit "Update" %>
<% end %>
При добавлении следующего кода на отдельную страницу он переходит на страницу редактирования (с кодом выше) и выдает ошибки, указывающие на необходимость ввода пароля.
<%= form_for(@user, :html => { :multipart => true }) do |u| %>
<%= render 'shared/error_messages', :object => u.object %>
<%= u.label :image %>
<%= u.file_field :image %>
<%= u.label :desktopinfo, "Desktop Info" %>
<%= u.text_area :desktopinfo %>
<%= u.submit "Update" %>
<% end %>
Это боль, потому что я хочу, чтобы информация (:image
и :desktopinfo
) изменялась без ввода пароля. Как видите, я изменил f.label
на u.label
во второй форме. Имеет ли это какое-то значение?
Как бы я поступил так?
Спасибо! Декан
UPDATE
Текущий код в контроллере Users:
def update
if @user.update_attributes(params[:user])
redirect_to @user, :flash => { :success => "Profile updated." }
else
@title = "Edit user"
render 'edit'
end
end
Куда бы я положил @user.update_attributes!(:image => params[:image], :desktopinfo => params[:desktopinfo])
Также я получаю undefined local variable or method
update_user_path'`.