Ruby on Rails:在UsersController#update中的Paperclip :: AdapterRegistry :: NoHandlerError

时间:2017-08-10 06:55:28

标签: ruby amazon-web-services heroku paperclip ruby-on-rails-5

我做错了什么?

用户控件中的

Paperclip :: AdapterRegistry :: NoHandlerError#update 找不到" S__28434447.jpg"

的处理程序
 @user = User.find(params[:id])

   if @user.update(user_params)
      flash[:notice] = "edit success"
      redirect_to("/users/#{@user.id}")
    end

users_controller.rb

class UsersController < ApplicationController
         before_action :authenticate_user

          def edit
            @user = User.find_by(id: params[:id])
          end

          def update
            @user = User.find(params[:id])

            if @user.update(user_params)
              flash[:notice] = "edit success"
              redirect_to("/users/#{@user.id}")
            end
          end

         private

         def user_params
           params.require(:user).permit(:avatar, :name, :email, :phone_number, :description)
         end

end

参数:

{"utf8"=>"✓",
 "authenticity_token"=>"hRL4l1uZtBP8N9uQZeImLSOyn/u10Qc7zXiJBkFvVJvzO7bS6DxGVpIozEu0fjWRAZU1YGsfMgj6bwNT1P1FFg==",
 "user"=>{"name"=>"admin", "avatar"=>"S__28434447.jpg", "email"=>"admin@gmail.com", "phone_number"=>"", "description"=>""},
 "id"=>"1"}

edit.html.erb

     <%= form_tag("/users/#{@user.id}/update", html:{multipart: true}) do %>
            <div class="form-group">
              <p>*ユーザー名</p>
              <input name="user[name]" value="<%= @user.name %>" class="form-control">
            </div>
            <div class="form-group">
              <p>プロフィール画像</p>
              <input name=user[avatar] type="file" value="<%= @user.avatar %>" class="form-control">
            </div>
            <div class="form-group">
              <p>*メールアドレス</p>
              <input name=user[email] value="<%= @user.email %>" class="form-control">
            </div>
            <div class="form-group">
              <p>電話番号</p>
              <input name=user[phone_number] value="<%= @user.phone_number %>" class="form-control">
            </div>
            <div class="form-group">
              <p>自己紹介</p>
              <input name=user[description] value="<%= @user.description %>" class="form-control">
            </div>

            <div class="actions">
              <input type="submit" value="保存" class="btn btn-primary">
            </div>
       <% end %>

我使用的是gem文件 宝石&#39;回形针&#39; 宝石&#39; aws-sdk&#39;,&#39;〜&gt; 2.3&#39;

我使用rails 5

我不知道哪里错了。 所以请告诉我改进点。

1 个答案:

答案 0 :(得分:0)

这样做

  1. 删除此行<input name=user[avatar] type="file" value="<%= @user.avatar %>">
  2. 并添加此行<%= file_field_tag :avatar %>代替普通代码。
  3. 参考:document

    快乐编码 干杯!