Ruby 在 Rails 上:Paperclip::AdapterRegistry::NoHandlerError 在 UsersController#update
Ruby on Rails : Paperclip::AdapterRegistry::NoHandlerError in UsersController#update
我做错了什么?
Paperclip::AdapterRegistry::NoHandlerError in UsersController#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文件
gem 'paperclip'
gem 'aws-sdk', '~> 2.3'
我用rails5
不知道哪里错了。
所以请告诉我改进点。
这样做
- 删除这一行
<input name=user[avatar] type="file" value="<%= @user.avatar %>">
- 并添加此行
<%= file_field_tag :avatar %>
来代替之前的代码。
参考:document
快乐编码
干杯!
我做错了什么?
Paperclip::AdapterRegistry::NoHandlerError in UsersController#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文件 gem 'paperclip' gem 'aws-sdk', '~> 2.3'
我用rails5
不知道哪里错了。 所以请告诉我改进点。
这样做
- 删除这一行
<input name=user[avatar] type="file" value="<%= @user.avatar %>">
- 并添加此行
<%= file_field_tag :avatar %>
来代替之前的代码。
参考:document
快乐编码 干杯!