【发布时间】:2014-04-28 11:51:09
【问题描述】:
这是我的模特
class User < ActiveRecord::Base
has_attached_file :profpic,
:styles => { :medium => "300x300>", :thumb => "100x100>" },
:default_url => "/assets/blonde_user.png"
validates_attachment_content_type :profpic, :content_type => /\Aimage\/.*\Z/
这是我的控制器方法
def uploadpic
p "=========================+++++++++++++++"
p params["user"]["profpic"]
# current_user.profpic = params["user"]["profpic"]
# current_user.profpic_file_name = params["user"]["profpic"]
p "================================="
p params
p params[:user]
current_user.profpic = params["user"]["profpic"]
current_user.save
p "=================================="
redirect_to "/profile"
end
我的看法是这样的
<div class="picture">
<%= form_for current_user, :url => '/uploadpic', :html => { :multipart => true } do |form| %>
<%= form.file_field :profpic %>
<%= image_tag current_user.profpic.url %>
<% end %>
</div>
在提交此表单时,我遇到了类似的错误
Paperclip::AdapterRegistry::NoHandlerError in ProfilesController#uploadpic
在我的终端中,我得到了所有打印语句的输出,例如
Parameters: {"utf8"=>"✓", "authenticity_token"=>"9J2MdO7Ok1sfP13n6R97so1W/HRI0RiDsHJYiOy6B4Q=", "user"=>{"profpic"=>"n.jpg"}}
User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
"=========================+++++++++++++++"
"n.jpg"
"================================="
{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"9J2MdO7Ok1sfP13n6R97so1W/HRI0RiDsHJYiOy6B4Q=", "user"=>{"profpic"=>"n.jpg"}, "controller"=>"profiles", "action"=>"uploadpic"}
{"profpic"=>"n.jpg"}
Completed 500 Internal Server Error in 4ms
帮助。
【问题讨论】:
-
您的
profpic参数似乎是一个字符串而不是一个正确的类。确保表单标记中有multipart属性。 -
这是您的全部观点,还是部分观点?如果它是部分的,那么请确保任何包装表单元素都有
multipart: true作为 html 选项。 -
你能分享
schema.rb文件中users表的架构吗?将其添加到问题中。
标签: ruby-on-rails ruby ruby-on-rails-4 paperclip