2012-03-12 6 views
0

반송파를 처음 실행했을 때 아바타의 크기 조정 외에 모든 것이 제대로 작동하고있었습니다.Carrierwave Gem : 아바타가있는 사용자를 만든 후 'nil을 문자열로 변환 할 수 없습니다.'

스케일링을 시도한 후에 모든 것이 지옥에갔습니다. 나는 보석을 제거하고 사용자로부터 아바타를 제거하기위한 이전 작업을 수행 한 다음 추가 할 다른 이전 작업을 수행했습니다.

여전히 같은 오류입니다. 참고 나는 레일 업 그레 이드 아바타, 이미지가 아니라 레일을하고있다. 추가 외에도 avatar_uploader.rb 파일을 건드리지 않았습니다.

require 'carrierwave/orm/activerecord' 

맨 위 줄에 있습니다.

그래서, 정말 이상한 일입니다

내가 콘솔에 가서

1.9.3p0 User.last

할 001> User.last 사용자로드 (0.3ms) "를 사용자를 선택 "사용자 *"사용자 "주문"사용자 "DESC LIMIT 1 => #

사용자 데이터베이스가 이미지를 인식하고 있기 때문에 매우 이상합니다. 입니다. 그래서 ... 생각?

이렇게 처음에는 이런 일이 발생하지 않았습니다. 내 사용자에

내가 가진 내 사용자 양식에서

<p> 
    <label>My Avatar</label> 
    <%= image_tag(@user.avatar_url) if @user.avatar? %> 
    <%= f.file_field :avatar %> 
    <%= f.hidden_field :avatar_cache %> 
</p> 

이 페이지를 표시 :
<label>My Avatar</label> 
    <%= f.file_field :avatar %> 
    <%= f.hidden_field :avatar_cache %> 

나는 무슨 일이 일어나고 있는지를 보여주기 위해 서버 창을 부착.

Started GET "https://stackoverflow.com/users/17" for 127.0.0.1 at 2012-03-12 13:26:28 -0500 
Processing by UsersController#show as HTML 
    Parameters: {"id"=>"17"} 
    User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 
[["id", "17"]] 
    Rendered users/show.html.erb within layouts/application (1.9ms) 
Completed 500 Internal Server Error in 5ms 

ActionView::Template::Error (can't convert nil into String): 
    7: 
    8: <p> 
    9: <label>My Avatar</label> 
    10: <%= image_tag(@user.avatar_url) if @user.avatar? %> 
    11: <%= f.file_field :avatar %> 
    12: <%= f.hidden_field :avatar_cache %> 
    13: </p> 
    app/views/users/show.html.erb:10:in 
`_app_views_users_show_html_erb__498619941080127768_2168209880' 
    app/controllers/users_controller.rb:18:in `show' 

모든 도움을 주시면 감사하겠습니다. 감사합니다 :)

답변

1

이 업 로더를 열고 당신이해야 할 다음 avatar.url.to_s

광산이다.

0

이 도움이 될지 모르겠다; 컨트롤러에서 수행중인 작업을 놓칠 수 있습니다.

업로드 대상 : avatar, 그러나 avatar_url을 참조하여 검색하십시오.

def root 
    Rails.root.join 'public/' 
end 

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

이 아마 문제가 해결됩니다 :

<%= image_tag user.avatar.url.to_s, {:height => 30} %>