![](/img/trans.png)
[英]Unable to permit :file param in rails controller when trying to upload file using active storage
[英]How to permit a new param with devise for active storage?
我使用的是带有Rails 5.2的最新版本的devise 4.6.1。 由于某些原因,在应用程序控制器中将参数列入白名单无效。 这段代码直接从文档中获取,我不知道为什么它不起作用。
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 %>
我发现最好创建一个单独的路由,并使用UsersController
修改身份验证之外的User
属性,包括Active Storage
附件。 您想要创建一个users#update
方法,并将您的avatar
参数列入白名单。 这有点过时,但可接受的答案基本上是您要采用的方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.