0

私は多くの同様の質問に目を通し、解決策を試しましたが成功しませんでした。Rails3とpaperclip3を使用しています。paperclipgithubのチュートリアルの指示に従って、ImageMagickを正常にインストールしました。

私のモデルでは:

has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/profile_photo_store/missing.png"
attr_accessible :photo

私のデータベースには、次の列を追加しました。

:photo_file_name, :photo_content_type, :photo_file_size, :photo_updated_at

私の編集ビューでは:

<%= form_for(@user, :url => user_path, :html => { :multipart => true }) do |f| %>
  <div class="field">
    <b>Add a Photo</b><br />
    <%= f.file_field :photo %>
  </div><br />
<% end %>

私のショービューで

<%= image_tag @user.photo.url(:medium) %>

Firebug経由で写​​真が通過しているのを見ると、写真が送信されていることがわかります。それでも、missing.pngはまだ表示されています。ペーパークリップはファイルをどこに保存しますか?私は何を間違っているのですか。

4

3 に答える 3

1

この答えを解決できなかったので、carrierwaveに切り替えました...その後、同様の問題が発生しました。それを解決したソースからビルドするのではなく、パッケージマネージャーを使用してImageMagickを再インストールしました。どうやら、ソースからビルドした場合、binファイルは/ usr / local / binに保存されますが、これは私のRailsアプリでは認識できませんでした。

于 2012-06-07T12:30:15.167 に答える
0

Rails 3.2では、ペーパークリップの添付ファイルはパブリックフォルダーpublic / system / users / [photo or avatar ...]/...に保存されます。それらが通過して保存されたかどうかを確認できます。コードに明らかなエラーはありません。この移行は、次のことを確認するために使用できます。

class AddAttachmentAvatarToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :photo_file_name, :string
    add_column :users, :photo_content_type, :string
    add_column :users, :photo_file_size, :integer
    add_column :users, :photo_updated_at, :datetime
  end

  def self.down
    remove_column :users, :photo_file_name
    remove_column :users, :photo_content_type
    remove_column :users, :photo_file_size
    remove_column :users, :photo_updated_at
  end
end

また、デフォルトの写真コードを削除するか、「/ images / ...」に編集してパブリックフォルダに画像フォルダを作成します。これにより、ペーパークリップがファイルを検索します。ペーパークリップはまだ「古い」方法で構成されているようです(すべてのアセットはパブリックフォルダーにあります):ユーザーモデルの場合

has_attached_file :photo, :styles => { :medium => "200x200>", :thumb => "60x60>" },
                         :default_url => "/images/default_:style_avatar.png"

必要に応じて、次のように記述してみてください。

<%= form_for(@user) do |f| %>
...
于 2012-05-30T22:31:32.583 に答える
0

コントローラの強いパラメータが:photoを受け入れるかどうかを確認してください。

于 2015-01-20T00:00:20.027 に答える