Теперь я понимаю, что эта тема уже освещалась много раз.Однако, похоже, что не существует решения, которое хотело бы освободить поле текущего пароля только тогда, когда пароль в базе данных был пустым.
В настоящее время у меня есть пароль, требуемый в моей модели пользователя, такой как:
def password_required?
(authentications.empty? || !password.blank?) && super
end
Затем я скопировал функцию обновления в мой контроллер регистрации:
def update
if resource.update_with_password(params[resource_name])
set_flash_message :notice, :updated
sign_in resource_name, resource, :bypass => true
redirect_to after_update_path_for(resource)
else
clean_up_passwords(resource)
render_with_scope :edit
end
end
Я просто не знаю, как добиться того, чтобы devise не нуждался в пароле при редактировании пустого пароля,мне также нужно удалить поле current_password из представления и сделать это?
<% if current_user.password_required? %>
<p><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></p>
<% end %>
<p><%= f.submit "Update" %></p>
Любые предложения были бы хорошими в этом, так как я уверен, что что-то пропускаю, но я все еще новичок в Rails в целом,Спасибо!