Если вы хотите загрузки аватару в другой точки зрения, можно, конечно, сделать это.
Если вы хотите сделать это в своем devise, вам нужно будет отредактировать свою базу данных, модель и контроллер.
Вы можете установить «профиль» действие не проблема, мы делаем это here (это только тест приложение, вы можете зарегистрироваться и попробовать сами ...):
![enter image description here](https://i.stack.imgur.com/LQIsp.png)
Вы должны помнить, что модель User
не привязана к Devise
- вы можете делать с ней что угодно, независимо от того, используется ли она для аутентификации или нет.
Вы можете сделать следующее:
#config/routes.rb
resources :profile, controller: :users, only: [:index, :update]
#app/controllers/users_controller.rb
class UsersController < ApplicationController
def update
current_user.update avatar_params
end
private
def avatar_params
params.require(:user).permit(:avatar)
end
end
#app/views/users/index.html.erb
<%= form_for current_user, multipart: true do |f| %>
<%= f.label :avatar %><br />
<%= f.file_field :avatar %>
<%= f.submit %>
<% end %>
Это должны быть согласованы с соответствующим кодом модели и т.д., но он должен работать, чтобы позволить вам загрузить соответствующий аватар.
Вы также можете сделать аватар появляются в других частях приложения, например:
![enter image description here](https://i.stack.imgur.com/QbtNd.png)
Это может быть сделано с помощью стандартного Скрепка image file path helpers:
<%= image_tag @user.avatar.url %>
Если вы хотите связать аватар с процессом регистрации, вам нужно будет отредактировать контроллер разработки до allow the parameters:
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:user) << :avatar
end
end
Если у вас есть правильная настройка в вашей модели, это должно позволить вам включить средство загрузки аватаров в ваш просмотр регистрации Devise.
Если вы добавили поле 'avatar 'в свою пользовательскую модель, вы можете сделать его таким же образом в своем действии show, например:' <% = image_tag (@ user.avatar.url)%> '. Если вы хотите показать только текущий аватар пользователя, замените '@ user' на' current_user' –
Я хочу отобразить загрузку, я уже сделал изображение: D – Acrux
А, я вижу (: вы должны быть в состоянии открыть a '<% = form_for current_user,: url => {: action =>: update}%>' на странице профиля вашего пользователя и поместить туда аватара –