Reputation: 41954
Checking for the file with File.exists? returns false in my production console:
irb(main):026:0> x.avatar(:medium)
=> "/system/users/avatars/000/000/091/medium/linkedin.jpg?1391118203"
irb(main):025:0> File.exists? x.avatar(:medium)
=> false
Chrome Network Log indicates the file is found
Request URL:https://www.example.com/system/users/avatars/000/000/091/medium/linkedin.jpg?1391118203
Request Method:GET
Status Code:200 OK
Any idea why the discrepancy?
Update
I have also tried
irb(main):029:0> File.size "#{Rails.root}/public#{x.avatar(:medium)}"
Errno::ENOENT: No such file or directory @ rb_file_s_size - /home/app/example.com/current/public/system/users/avatars/000/000/026/medium/277553f.jpg?1432666893
Upvotes: 1
Views: 127
Reputation: 4144
File.exists? is looking for a file on the filesystem, but your avatar method is including a URI query (?1391118203) which isn't part of the physical file name.
I bet if you chop the query string off it would return true:
File.exists? "#{Rails.root}/public#{ x.avatar(:medium).sub(/\?\d+$/, '') }"
Upvotes: 2