【问题标题】:Rails 3 - Associated models with PaperclipRails 3 - 与回形针相关的模型
【发布时间】:2011-07-06 06:20:33
【问题描述】:

用户模型有一个项目模型,它有使用回形针的照片附件

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

用户模型:

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 属于_to:用户 has_attached_file :photo, :styles => {:medium => '800x600>', :thumb => '100x100>'}

projects_controller:

定义创建 @user = 当前用户 @project = Project.create!做 |p| p.user_id = @user.id p.medium = params[:project][:medium] p.title = params[:project][:title] p.content = params[:project][:content] p.src = 参数[:project][:src] p.photo = 参数[:project][:photo] 结尾 如果@project.save 重定向到项目路径 别的 渲染:动作 => '新' 结尾 结尾

项目的展示动作:

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

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

【问题讨论】:

    标签: ruby-on-rails-3 paperclip


    【解决方案1】:

    为 has_attached_file 指定数据库存储选项

    has_attached_file :photo, :storage => :database

    【讨论】:

    • Paperclip::StorageMethodNotFound(无法加载存储模块“数据库”):
    • @abdollar - 我不想将文件本身存储在数据库中,而是将指针存储在文件中。就像标准的回形针模型一样,其中 Model.attachment.url 显示保存的文件路径
    • 只需使用 apache 或其他方式从文件系统中提供 url。使用字符串替换更改 url 以匹配您的静态 Web 服务器路径
    • 我以前从未这样做过。照片正在保存到我的文件系统中,问题是由于某种原因没有创建关联。使用正则表达式来解决问题并不理想。
    • hmm - 也许这是您不必处理的 rails 3 的问题 - 请查看此链接 patshaughnessy.net/2010/5/23/…
    猜你喜欢
    • 2012-05-23
    • 2012-05-24
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    相关资源
    最近更新 更多