0

私が最初にcarrierwaveを起動して実行したとき、アバターのサイズスケーリングを除いて、すべてが完全に正常に機能していたと言います。

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

それでも同じエラー。私は画像ではなく、railsgアップローダーアバターを実行していることに注意してください。追加する以外は、avatar_uploader.rbファイルには触れていません。

require 'carrierwave/orm/activerecord'

トップラインに。

だから、本当に奇妙なことは:

コンソールに入って、User.lastを実行するとき

1.9.3p0:001> User.last User Load(0.3ms)SELECT"users"。*FROM "users" ORDERBY"users"。"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 "/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'

どんな助けでも大歓迎です!ありがとう :)

4

2 に答える 2

1

アップローダーを開き、次のものがあることを確認します。

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

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

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

于 2012-03-21T23:30:10.267 に答える
0

これが役立つかどうかわからない。コントローラで実行していることが欠落している可能性があります。

:avatarにアップロードしますが、avatar_urlを参照して取得します。

私のはavatar.url.to_sです

<%= image_tag user.avatar.url.to_s, {:height => 30} %>
于 2012-03-12T20:20:47.040 に答える