2 Stimmen

Rails 3.2 Carrierwave Fehler beim Vorkompilieren

Ich habe einen class AvatarUploader < Carrierwave::Uploader::Base, der User-Avatare im Verzeichnis public/uploads speichert:

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

  version :main do
     process :resize_to_limit => [128, 128]
  end

Und ich möchte die Anwendung im Produktions-Modus mit aktivierter Assets-Vorkompilierung starten. Alles außer Avataren funktioniert einwandfrei. Wenn ich ein beliebiges User-Profil besuche, erhalte ich:

Started GET "/users/1" for 127.0.0.1 at 2012-05-03 17:45:24 +0300
Processing by Users::UsersController#show as HTML
  Parameters: {"id"=>"1"}
  Rendered users/users/show.html.erb within layouts/application (2.5ms)
Completed 500 Internal Server Error in 16ms

ActionView::Template::Error ( ist nicht vorkompiliert):
    87:                     <%= image_tag @user.avatar_url(:main).to_s %>
  app/views/users/users/show.html.erb:87:in `_app_views_users_users_show_html_erb___538221278131396366_28399560'

Vielleicht gibt es eine Möglichkeit, die Vorkompilierung der Avatare zu deaktivieren (da sie erneut hochgeladen werden können, wenn die App im Produktionsmodus läuft). Bitte geben Sie Vorschläge, wie dieses Problem behoben werden kann. Vielen Dank.

7voto

Sully Punkte 14188

Wenn image_tag einen leeren String erhält, versucht es eine Ressource aus der Asset-Pipeline zu erhalten und zurückzugeben

"ist nicht kompiliert"

https://github.com/rails/rails/issues/3080

Drucken Sie @user.avatar_url(:main).to.s, um sicherzustellen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X