2012-03-12 12 views
0

キャリアウェーブを初めて稼働させたとき、アバターのサイズスケーリング以外はすべてうまくいっていました。キャリアウェーブ宝石:アバター付きのユーザーを作成した後、「nilを文字列に変換できません」

私はスケーリングを試みた後、すべてが地獄に行きました。私は宝石をアンインストールし、ユーザーからアバターを削除するための移行を行った後、別の移行を追加しました。

まだ同じエラーです。注意私はレールアップルアバター、イメージではないレールをやっている。私はavatar_uploader.rbファイルに触れていません。追加する以外に、

require 'carrierwave/orm/activerecord' 

最上部にあります。

だから、本当に奇妙なことがある:私はコンソールに行くとき

、およびUser.last

1.9.3p0を実行します。001> User.last ユーザー負荷(0.3ms)、「ユーザーを選択msgstr "" id "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あなたのアップローダーを開き、以下を持っていることを確認している。

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

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

これはおそらく、問題を解決します。

0

これは役立つかどうかわかりません。あなたがコントローラーでやっていることが不足している可能性があります。

アップロード先:avatar、その後avatar_urlを参照して取得します。

鉱山は

<%= image_tag user.avatar.url.to_s, {:height => 30} %> 
関連する問題