2010-04-26 75 views
4

我试图用Paperclip与我的Rails应用程序到化身添加到用户,但在创建用户时,它也救不了我的图片或更新的数据库列。回形针将不保存图像中的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"=>"[email protected]"}} 
[paperclip] Saving attachments. 

回形针说,这是保存模板,但是当我看在public文件夹在我的应用程序中创建了一个system,但system文件夹为空。

所以看起来它是不是保存图片的文件夹。

它得到通过的形式处理,并保存在我的/tmp文件夹中。

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

回答

3

我得到它的工作。

我必须在我的用户模型中添加:avatarattr_accessible

在这里张贴这一点,并希望它可以帮助别人的某个时候:)

谢谢你们的帮助

+0

我有同样的问题,我试图添加attr_accessible,但它仍然dosent保存正确,并显示一条丢失的消息,当我尝试加载图片。这是非常令人沮丧的 – 2010-08-02 21:27:57

+1

尝试设置:路径选项。它可能有帮助 – Lisinge 2010-08-04 05:57:24

0

首先检查,如果path是所创建连接正确。您可以使用avatar.path来确定。如果它没有返回正确的路径,可能有人正在覆盖默认路径paperclip

还要检查,如果公共/系统是作为正在运行的应用程序服务器的用户可写。

+0

以root身份运行所以它应该能够写 – Lisinge 2010-04-26 18:32:39

+0

当我使用'@ user.avatar.path'时,我不能将nil转换成字符串'' – Lisinge 2010-04-26 18:34:52

+0

它几乎总是有用的发布完整的回溯。 – 2010-04-26 18:39:29

0

尝试设置:路径选项

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

不要忘记设置:多=>在窗体的声明属实。这让我咬了一两次。

1
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

相关问题