2011-03-01 70 views
0

用户模式有一个项目模型,它具有使用回形针的Rails 3 - 相关型号回形针

我不记得以前有一个像这样的问题,照片附件。问题是,附件正在保存到文件系统,但不是数据库。
例如RAILS_ROOT/public/system/photos/id/style/file正在创建,但是User.find(1).projects [0] .photo?返回false

用户模式:

has_many :projects, :dependent => :destroy

项目模型:

 
attr_accessible :title, :content, :src, :medium, :photo 
attr_accessor :photo_file_name 
attr_accessor :photo_content_type 
attr_accessor :photo_file_size 
attr_accessor :photo_updated_at 
belongs_to :user 
has_attached_file :photo, :styles => {:medium => '800x600>', :thumb => '100x100>'}

projects_controller:

 
def create 
    @user = current_user 
    @project = Project.create! do |p| 
     p.user_id = @user.id 
     p.medium = params[:project][:medium] 
     p.title = params[:project][:title] 
     p.content = params[:project][:content] 
     p.src = params[:project][:src] 
     p.photo = params[:project][:photo] 
    end 
    if @project.save 
     redirect_to projects_path 
    else 
     render :action => 'new' 
    end 
end 

项目的表演动作:

 
- form_for(@project, :html => { :multipart => true }) do |f| 
    ... 

我通常会在我的路线文件中拥有“resources:projects”,但由于某些原因,我的自定义路线搞乱了(/ projects正在映射到show动作而不是索引,并且表单提交正在被索引处理行动),所以我删除了资源行。项目 - 用户关联工作正常,但照片未分配给项目。我不知道为什么。

回答

0

指定数据库存储选项has_attached_file

has_attached_file:照片,:存储=>:数据库

+0

回形针:: StorageMethodNotFound(无法加载存储模块 '数据库'): – aperture 2011-03-01 05:24:21

+0

您将需要此叉钢轨3 https://github.com/patshaughnessy/paperclip – abdollar 2011-03-01 05:25:46

+0

@abdollar - 我不想将文件本身存储在数据库中,而是指向文件的指针。就像标准的Paperclip模型一样,Model.attachment.url显示保存的文件路径 – aperture 2011-03-01 05:45:19