Rails file_filed不传递params

时间:2016-08-30 15:25:09

标签: ruby-on-rails forms parameters

我的图片更新有问题

我的表格

  = form_for @user, :html => {class: "form form_profile"} do |user|
    = user.file_field :avatar
 .... other fields
  end 

和控制器update以及user_avatar_params操作

def update
 respond_to do |format|
       # binding.pry
      if params[:user][:avatar]

        if current_user.update(user_avatar_params)
          flash[:notice] = 'Updated
          format.html { render action: 'edit' }
          format.js { render 'success_edit', layout: false }
 ....
end




 def user_avatar_params
    params.require(:user).permit(:avatar)
 end

来自控制台的params

{"utf8"=>"✓", "_method"=>"patch", "user"=>{"current_password"=>"", "password"=>""}, "action"=>"update", "controller"=>"users", "id"=>"2"}

我使用paperclip

它有什么问题?

1 个答案:

答案 0 :(得分:0)

尝试添加html: { multipart: true }代码,如下例所示。

<%= form_for @user, url: users_path, html: { multipart: true } do |form| %>
<%= form.file_field :avatar %>
<% end %>