1

ユーザーにアバターを追加するために Rails 3.0 アプリで Paperclip を使用していますが、パスがオフになっているため画像が保存されません。私が得るものは次のとおりです。

2012-04-11 23:38:29 -0700 で 127.0.0.1 の GET "/profilepics/small/missing.png" を開始しました

ActionController::RoutingError (「/profilepics/small/missing.png」に一致するルートがありません):

私のユーザーモデルには次のものがあります:

    has_attached_file :profilepic, :styles => { :small => "150x150>" }

:path => & :url => には何を入れればよいですか?

フォームは次のようになります。

      <% form_for @user, :html => { :multipart => true } do |f| %>

      <%= f.file_field :profilepic %>

      <% end %>

ログは次のようになります。

2012-04-12 00:33:51 -0700 に 127.0.0.1 の GET "/system/profilepics/small/missing.png" を開始しました

ActionController::RoutingError ("/system/profilepics/small/missing.png" に一致するルートがありません):

/usr/lib/ruby/gems/1.9.1/gems/actionpack-3.0.12/lib/action_dispatch/middleware/templates/rescues/routing_error.erb をレスキュー/レイアウト内でレンダリング (1.2ms)

4

3 に答える 3

3

私のサンプルを参照してください:

   has_attached_file :avatar, :styles => { :thumb => "50x50#", :large => "1000x1000>", :medium => "200x200#" },
     :default_url => "/system/avatars/:style/missing.png",
     :url  => "/system/:attachment/:id/:style_:filename",
     :path => ":rails_root/public/system/:attachment/:id/:style_:filename"
  • :default_url-ユーザーがアバターをアップロードしなかった場合のデフォルト画像のパスです
  • 「#」-この記号は画像を切り抜くためのものです

次に、画像を次のように表示できます。

<%=image_tag(@user.avatar.url(:thumb))%>
<%=image_tag(@user.avatar.url(:medium))%>
于 2012-04-12T07:15:43.703 に答える
1

今すぐ動作します!!!

同じ問題に苦しんでいる人のために、常に確認して確認する重要なことがいくつかあります。

  1. フォームでは常に{ :multipart => true }を指定してください。そうしないと、フォームは添付ファイルを受け入れません。

    <%= form_for @user, :html => **{ :multipart => true }** do |f| %>
    
  2. user.rb (または添付ファイルを追加する任意のモデル) で、attr_accessible :photo (または添付ファイルの名前) を作成します。

  3. 新しい Gem をインストールした後は、必ずサーバーを再起動してください。

:) みんなありがとう!!!!

于 2012-04-12T16:20:23.787 に答える
0

単に画像を表示したい場合は、url とパスのオプションを指定する必要はありません。

ショーページでこの行を使用すると、画像が表示されます...

     <%=image_tag(@user.profilepic.url(:small))%>

そして楽しむ…………

于 2012-04-12T07:35:29.110 に答える