Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: None  |  size: 1.10 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. gem Paperclip interpolation
  2. MODEL    
  3.     model/contract.rb
  4.       has_many :contract_files
  5.  
  6.     model/contract_file.rb
  7.       has_attached_file :data
  8.  
  9. CONSOLE
  10. Loading development environment (Rails 3.1.0)
  11.  
  12. 1.9.2p290 :001 > cont = Contract.first
  13.  
  14.   Contract Load (0.1ms)  SELECT "contracts".* FROM "contracts" LIMIT 1    
  15.          => #Contract id: 1, organization: "Com.org", and etc ....
  16.  
  17. 1.9.2p290 :002 > cont.contract_files
  18.  
  19.   ContractFile Load (0.2ms)  SELECT "contract_files".* FROM "contract_files"
  20.      WHERE "contract_files"."contract_id" = 1    
  21.          => #[ContractFile id: 88, caption: "asdf", and etc ...]
  22.        
  23. model/contract_files.rb    
  24.       has_attached_file :data,
  25.       :url => "/assets/paperclip/:contract_id/:filename"
  26.        
  27. Contract.find( params[:id] ).contract_files.map { |cf| cf.data.url }
  28. # Dont't forget to handle nonexistent id
  29.        
  30. #model/contract_file.rb
  31. has_attached_file :data, :path => "public/contracts/:parent_id/assets/paperclip/:id.:extension", :url => "/contracts/:parent_id/assets/paperclip/:id.:extension"
  32.  
  33. Paperclip.interpolates :parent_id do |a, s|
  34.     a.instance.contract.id
  35. end