2011-03-01 71 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