has_many 'Paperclip' output?

gem 'rails', '3.0.9' gem "paperclip", "~> 2.0"

rails console

contract = Contract.first

      => #<Contract id: 1, . . .

files = contract.contract_files

     => [#<ContractFile id: 1, contract_id: 1, . . .

files.first.data.url

     => "/system/data/1/original/logo.png?1325513082"

files.map(&:data_file_name).each do |key| key end

     => ["logo.png", "newyearseve-2011-res.jpg", nil] #IT WORKS FINE!

files.map(&:data.url).each do |key| key end

     => NoMethodError: undefined method `url' for :data:Symbol #IT DOESN'T WORK

Can you explain how to get access to "data.url" in has_many model?

Hmm… to my knowledge, & (unary operator) is converting to_proc on an object.

so file.map(&:data_file_name) is equal to:

file.map {|i| i.data_file_name)

but on your second example

files.map(&:data.url) , ruby interpret it as call ‘url’ method on symbol :data and call to_proc

hmm. I dont know the solution, but you might try

files.map do |file|

file.data.url

end

Thank you, Ahmy! Simple solutions always work fine. That's all we need.