【问题标题】:Paperclip won't save image in Rails app回形针不会在 Rails 应用程序中保存图像
【发布时间】:2012-06-30 01:07:28
【问题描述】:

我正在尝试将Paperclip 与我的 Rails 应用程序一起使用以向用户添加头像,但在创建用户时它不会保存我的图像或更新数据库列。

这是模型的样子:

class User < ActiveRecord::Base
  has_attached_file :avatar

以及haml中的注册表:

- form_for :user, @user, :url => { :action => "signup" }, :html => { :multipart => true } do |f|
 ...
 ...
      %li
        %div{:class => "header"} Profilepicture
        %div{:class => "input"}
          = f.file_field :avatar

当我查看日志时,这就是传递给“注册”操作的内容:

Parameters: {"commit"=>"Save", "action"=>"signup", "controller"=>"user/register",      "user"=>{"name"=>"Micke Lisinge", "birthmonth"=>"07", "password_confirmation"=>"[FILTERED]", "nickname"=>"lisinge", "avatar"=>#<File:/tmp/RackMultipart20100426-3076-1x04oxy-0>, "gen"=>"m", "birthday"=>"23", "password"=>"[FILTERED]", "birthyear"=>"1992", "email"=>"lisinge@gmail.coma"}}
[paperclip] Saving attachments.

Paperclip 说它正在保存模板,但是当我在我的应用程序中查看 public 文件夹时,它创建了一个 systemsystem 文件夹是空的。

所以它似乎没有将图片保存到文件夹中。

它由表单处理并保存在我的/tmp 文件夹中。

也许你们有任何提示或知道这个问题可能是什么?

【问题讨论】:

    标签: ruby-on-rails ruby paperclip


    【解决方案1】:

    我让它工作了。

    我必须在我的用户模型中将:avatar 添加到attr_accessible

    在这里发布,希望对某人有所帮助:)

    感谢大家的帮助

    【讨论】:

    • 我有同样的问题,我尝试添加 attr_accessible 但它仍然无法正确保存,并且当我尝试加载图片时显示丢失的消息。这很令人沮丧
    • 尝试设置 :path 选项。它可能会有所帮助
    【解决方案2】:

    不要忘记在表单声明中设置 :multipart => true 。这咬了我一两次。

    【讨论】:

      【解决方案3】:
      has_attached_file :asset, :url  => "/assets/:id/:style/:basename.:extension",
        :path => ":rails_root/public/assets/:id/:style/:basename.:extension"
      

      仅供参考,此代码实际上将我的文件保存在我的机器“/”的根目录中,因为 :rails_root 参数失败。这是在 Rails 3.0.0.rc 上

      【讨论】:

        【解决方案4】:

        首先检查path 对于创建的附件是否正确。您可以使用avatar.path 来确定。如果它没有返回正确的路径,可能是有人覆盖了默认的paperclip 路径?

        同时检查 public/system 是否可以被运行应用服务器的用户写入。

        【讨论】:

        • 以 root 身份运行,因此它应该能够写入
        • 我在使用@user.avatar.path时得到can't convert nil into String
        • 发布完整的回溯几乎总是有用的。
        • 但它甚至没有保存到数据库中
        【解决方案5】:

        尝试设置 :path 选项

        has_attached_file :avatar,
          :path => ':rails_root/public/system/:id.:extension'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-03-30
          • 2016-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-25
          相关资源
          最近更新 更多