首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创业板夹内插

创业板夹内插
EN

Stack Overflow用户
提问于 2012-02-04 16:39:48
回答 1查看 1.7K关注 0票数 1

日安。

我有rails 3.1。和宝石纸夹

在我管理公司合同的申请中:

代码语言:javascript
复制
MODEL    
    model/contract.rb
      has_many :contract_files

    model/contract_file.rb
      has_attached_file :data

CONSOLE
Loading development environment (Rails 3.1.0)

1.9.2p290 :001 > cont = Contract.first

  Contract Load (0.1ms)  SELECT "contracts".* FROM "contracts" LIMIT 1    
         => #Contract id: 1, organization: "Com.org", and etc ....

1.9.2p290 :002 > cont.contract_files

  ContractFile Load (0.2ms)  SELECT "contract_files".* FROM "contract_files"
     WHERE "contract_files"."contract_id" = 1     
         => #[ContractFile id: 88, caption: "asdf", and etc ...]

发问

仁慈点,请告诉我,我如何提取合同id: 1 in

代码语言:javascript
复制
model/contract_files.rb    
      has_attached_file :data,
      :url => "/assets/paperclip/:contract_id/:filename"

举个例子我想要什么

代码语言:javascript
复制
 On http//localhost:3000/contracts/1 get such files pathes:     http//localhost:3000/contracts/1/assets/paperclip/1/XXX.pdf     http//localhost:3000/contracts/1/assets/paperclip/1/XXY.pdf     http//localhost:3000/contracts/1/assets/paperclip/1/XXZ.pdf

非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-04 16:58:50

如果我弄清楚你可能会这样做:

代码语言:javascript
复制
Contract.find( params[:id] ).contract_files.map { |cf| cf.data.url }
# Dont't forget to handle nonexistent id

更新

要将contract_id放在url中,您应该以这样的方式恢复默认的回形针:url和:path参数:

代码语言:javascript
复制
#model/contract_file.rb
has_attached_file :data, :path => "public/contracts/:parent_id/assets/paperclip/:id.:extension", :url => "/contracts/:parent_id/assets/paperclip/:id.:extension"

Paperclip.interpolates :parent_id do |a, s|
    a.instance.contract.id
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9142476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档