回形针图片未上传?

时间:2011-09-10 00:52:24

标签: ruby-on-rails paperclip

我目前正在使用回形针将项目图片上传到我的网站。我将回形针设置为https://github.com/thoughtbot/paperclip。我上传了图片到我的网站,但没有任何内容保存到数据库。在我的公共文件夹中也有图像。

在我的配置中,

Paperclip.options[:command_path] = "/opt/local/bin/"

在我的item.rb

class Item < ActiveRecord::Base
  attr_accessible :photo_file_name, :photo_content_type, :photo_file_size,
                  :photo_updated_at
  has_attached_file :photo
end

class AddPhotoColumnToItem < ActiveRecord::Migration
  def self.up 
    add_column :items, :photo_file_name, :string
    add_column :items, :photo_content_type, :string
    add_column :items, :photo_file_size, :integer
    add_column :items, :photo_updated_at, :datetime
  end
...
end

项/ _form.html.erb:

<%= form_for @item, :html => { :multipart => true } do |f| %>

  <%= f.error_messages %>
  <p>
    <%= f.file_field :photo %>
  </p>

  <p><%= f.submit %></p>
<% end %>

最后是items_controller.rb(我正在使用cancan)

class ItemsController < ApplicationController

  load_and_authorize_resource 

  def edit
  end

  def update
    if @item.update_attributes(params[:item])
      redirect_to @item, :notice  => "Successfully updated item."
    else
      render :action => 'edit'
    end
  end
end

我用firebug检查确实上传了一张图片。我甚至提出了参数,我得到了这个:

 Parameters: {"utf8"=>"✓", authenticity_token"=>"XB0ptrmoxqRIakUB4YCBmbpYm2Pjex8KNm9g0pscpgo=", 
"item"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x007f9c5460ef80 @original_filename="lindsay-lohan.jpg", 
@content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"item[photo]\"; filename=\"lindsay-lohan-boobs.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/14/gbn6ww_d1fs0lrcw22w50xdr0000gn/T/RackMultipart20110909-26576-auv9vl>>}, "commit"=>"Update Item", "id"=>"1"}

任何人都知道为什么这不起作用?

1 个答案:

答案 0 :(得分:2)

attr_accessible我认为必须只是attr_accessible :photo