2009-08-26 4 views
0

내가 가진 레일 코드종이 클립, 2.3.3 및 OSX

보기

def update_avatar 
    current_user.profile.update_attribute(:avatar, params[:avatar]) 
    redirect_to user_path(current_user) 
    end 

및 모델

class Profile < ActiveRecord::Base 
    attr_accessible :first_name, :last_name, :nickname 
    has_attached_file :avatar, :styles => {:thumb => '100x100>'}, 
    :path => '#{RAILS_ROOT}/public/images/avatars/:id/:normalized_basename_:style.:extension', 
    :url => '/images/avatars/:id/:normalized_basename_:style.:extension' 

    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png', 'image/gif'] 
    validates_attachment_size :avatar, :less_than => 1.megabytes 
end 

에서 그리고 내가 '컨트롤러

<% uberform_for :profile, :html => { :multipart => true, :method => :put }, :url => update_avatar_path do |f| %> 
    <%= f.file_field :avatar %> 

    <p><%= f.submit 'Upload avatar' %></p> 
<% end %> 

아바타를 업로드하려고합니다. 아무것도 DB에 도착하지 않습니다. 파일 시스템. 로그에서 나는

Processing UsersController#update_avatar (for 127.0.0.1 at 2009-08-26 11:09:04) [PUT] 
    Parameters: {"profile"=>{"avatar"=>#<File:/var/folders/zg/zghNxzjrFP02se1nq1fKQ++++TI/-Tmp-/RackMultipart20090826-3425-1akehpx-0>}, "authenticity_token"=>"Frf1ozk01ePIhvsPSX3k1ophgvHHrnBFKhFcF21co+o="} 
    User Load (0.5ms) SELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1 
    Profile Load (0.4ms) SELECT * FROM "profiles" WHERE ("profiles".user_id = 1) LIMIT 1 
[paperclip] Saving attachments. 
Redirected to http://localhost:3000/users/alec-c4 
Completed in 18ms (DB: 1) | 302 Found [http://localhost/update_avatar] 

보고 응용 프로그램은 그림 /avatars/thumb/missing.png가

어떻게 그것을 해결하기 위해 렌더링?

답변

1

params[:avatar]은 params 해시에 없습니다. params[:profile][:avatar]

+0

하면 ArgumentError (1 대 2) 및 콘솔 >> 1 p = Profile.find ...... >> p.avatar = File.open ('/ Users/alec/Documents/Personal Data/avatars/11412573.jpg') ArgumentError : 잘못된 인수 수 (2는 1) –