Как разрешить новый параметр с устройством для активного хранения? - PullRequest
0 голосов
/ 05 марта 2019

Я на последней версии devise 4.6.1, с рельсами 5.2.Белые параметры в контроллере приложения по какой-то причине не работают.Этот код взят непосредственно из документации, я в недоумении, почему это не работает.

Application_controller:

class ApplicationController < ActionController::Base
 # protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?
  before_action :channel_variable

    def channel_variable
    @channels = Channel.all.order('created_at desc')
    end

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:account_update, keys: [:avatar])

    devise_parameter_sanitizer.permit(:sign_in, keys: [:avatar])

    devise_parameter_sanitizer.permit(:sign_up, keys: [:avatar])
  end
end

Консоль:

Unpermitted parameter: :avatar

edit.html.erb:

      <%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
        <%= f.error_notification %>

          <div class="field">
            <div class="control">
              <%= f.label :avatar %>
              <%= f.file_field :avatar %>
            </div>
          </div>
<% end %>

1 Ответ

0 голосов
/ 05 марта 2019

Я считаю, что лучше всего создать отдельный маршрут и UsersController изменить атрибуты User вне аутентификации, включая Active Storage вложения.Вы хотели бы создать метод users#update и внести в белый список ваш параметр avatar.Это немного устарело, но принятый ответ - в основном подход, который вы бы выбрали:

Rails: Разработка: Как я могу редактировать информацию пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...