
Untitled
By: a guest on
May 2nd, 2012 | syntax:
None | size: 1.10 KB | hits: 18 | expires: Never
gem Paperclip interpolation
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 ...]
model/contract_files.rb
has_attached_file :data,
:url => "/assets/paperclip/:contract_id/:filename"
Contract.find( params[:id] ).contract_files.map { |cf| cf.data.url }
# Dont't forget to handle nonexistent id
#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