使用Rails3和Paperclip的NoHandlerError

时间:2012-09-09 02:34:27

标签: ruby-on-rails-3 paperclip

所以这是我在StackOverflow上的第一个问题。

我正在尝试在Rails 3.2.3上实现Paperclip,点击“提交”以创建包含上传图片的个人资料后,我得到:

  

Paperclip :: AdapterRegistry :: UsersController中的NoHandlerError#update

     

找不到“Screen Shot 2012-09-01 at 11.03.43 AM.png”

的处理程序

我的服务器日志读取,

  

Paperclip :: AdapterRegistry :: NoHandlerError(找不到“Screen Shot 2012-09-01 at 11.03.43 AM.png”的处理程序):   app / controllers / users_controller.rb:65:in block in update' app/controllers/users_controller.rb:64:in update'

在我的用户模型中,我有

attr_accessible :avatar

has_attached_file :avatar, 
        :styles => { 
          :large => "500x500>", 
          :medium => "213x213>", # profile image
          :thumb => "50x50>",
          :smaller => "30x30>" }, 
          :processors => [:cropper],
         # tells paperclip how to crop the image  
        :storage => :s3,
        :s3_credentials => "#{Rails.root}/config/s3.yml", # TODO 
        :path => ":attachment/:id/:style/:basename.:extension",
        :bucket => 'eventsbucket'

无论是否包含S3信息,错误仍然存​​在。在我的迁移中,我有,

class AddAvatarColumnsToUsers < ActiveRecord::Migration
  def self.up
    add_attachment :users, :avatar
  end

  def self.down
    remove_attachment :users, :avatar
  end
end

最后,在我的用户控制器更新操作中,我有

def update
    respond_to do |format|
      if @user.update_attributes(params[:user])
        sign_in @user
        format.html { redirect_to @user, notice: 'Profile Successfully Updated' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
   end
end

在我的Gemfile中,我有宝石“回形针”,“〜&gt; 3.1.4”(更新:我已经从思想机器人直接拉回了Paperclip并且问题仍然存在)。我已经运行了bundle install。我运行db:migrate。我已阅读this StackOverflow entry,但错误仍然存​​在,无论我是否包含“multipart =&gt; true”。当我尝试Emerson Lackey Tutorial时,它试图显示“5.times ...”命令的输出。

我有兴趣让Paperclip工作并理解“NoHandlerError”是什么以及将来如何避免它。

1 个答案:

答案 0 :(得分:0)

您是否尝试过#134的轨道广播?

http://railscasts.com/episodes/134-paperclip?view=asciicast