繁体   English   中英

Paperclip不会在Rails应用程序中保存图像

[英]Paperclip won't save image in Rails app

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

这就是模型的样子:

class User < ActiveRecord::Base
  has_attached_file :avatar

和haml中的registerform:

- 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文件夹中。

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

我得到了它的工作。

我不得不在我的用户模型中添加:avatar attr_accessibleattr_accessible

在这里发布,并希望它有时帮助某人:)

谢谢大家帮助

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

has_attached_file :asset, :url  => "/assets/:id/:style/:basename.:extension",
  :path => ":rails_root/public/assets/:id/:style/:basename.:extension"

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

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

如果公共/系统可由运行应用程序服务器的用户写入,请检查。

尝试设置:path选项

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM