Ruby on rails 如何实施Carrierwave';s";删除上载的文件;?
我正在尝试实现Carrierwave的。虽然上载本身可以正常工作,但删除图像/徽标不起作用。正如Carrierwave建议的那样,我在视图中添加一个复选框以删除上传的徽标。因此,在我的查看页面中:Ruby on rails 如何实施Carrierwave';s";删除上载的文件;?,ruby-on-rails,ruby,ruby-on-rails-4,carrierwave,Ruby On Rails,Ruby,Ruby On Rails 4,Carrierwave,我正在尝试实现Carrierwave的。虽然上载本身可以正常工作,但删除图像/徽标不起作用。正如Carrierwave建议的那样,我在视图中添加一个复选框以删除上传的徽标。因此,在我的查看页面中: <div class="logo"> <%= f.label :logo %> <%= f.file_field :logo, accept: 'image/jpeg,image/gif,image/png', style: "width:
<div class="logo">
<%= f.label :logo %>
<%= f.file_field :logo, accept: 'image/jpeg,image/gif,image/png', style: "width:100%" %>
<p>
<label>
<%= f.check_box :remove_logo %>
Remove logo
</label>
</p>
</div>
我不确定如何处理未经允许的参数
。我已经尝试将attr\u accessor:remove\u logo
添加到控制器和用户模型中,但这没有什么不同
gem还提到了@user.remove_logo
和@user.save
。因此,我还尝试将它们添加到控制器的update方法中,如下所示。但这没什么区别。我做错了什么
def update
@user = User.friendly.find(params[:id])
if @user.update_attributes(update_params)
if params[:remove_logo]
@user.remove_logo!
@user.save
end
flash[:success] = "Profile updated"
redirect_to @user
else
render 'edit'
end
end
def update_params
params.require(:user).permit(:email,
:fullname,
:website,
:logo
:password,
:password_confirmation)
end
您只需添加
:删除徽标到更新参数
然后,您可以摆脱以下情况:
if params[:remove_logo]
@user.remove_logo!
@user.save
end
谢谢这对我有用。我一个人是不会想到的。
if params[:remove_logo]
@user.remove_logo!
@user.save
end