回形针不保存照片

时间:2012-05-30 21:56:39

标签: ruby-on-rails paperclip

我查看了许多类似的问题并尝试了解决方案但没有成功。我正在使用rails 3和paperclip 3.我已经成功安装了ImageMagick作为paperclip github上的教程。

在我的模特中:

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仍在显示。 paperclip在哪里保存文件?我做错了什么。

3 个答案:

答案 0 :(得分:1)

无法解决这个问题所以我改用了载波...之后我遇到了类似的问题。使用包管理器重新安装ImageMagick而不是从解决它的源构建。显然,当从源构建时,bin文件保存在/ usr / local / bin中,我的rails应用程序无法看到。

答案 1 :(得分: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| %>
...

答案 2 :(得分:0)

请检查控制器中的强参数是否接受:照片。