path
" Paperclip'a nie występuje nic podobnego do "firm_id
".
Innymi słowy chciałem zapisać coś takiego:
has_attached_file :scan_picture, :styles => {:thumb => '50x50>'}, :default_url => '/images/:style/missing.png', :url => "/system/scan_pictures/:firm_id/:id/:style/:basename.:extension", :path => ":rails_root/public/system/scan_pictures/:firm_id/:id/:style/:basename.:extension"
Jest to jednak możliwe :-)
Zrobiłem tak:
w katalogu
/config/initializers
stworzyłem plik paperclip_interpolations.rb
w tym pliku umieściłem zapis:
Paperclip.interpolates('firm_id') do |attachment, style| attachment.instance.move_out.customer.firm_id.to_s.parameterize endTłumaczyć to można tak:
Weź egzemplarz klasy, która wywołuje dołączanie pliku (
attachment.instance
), pobierz z niego obiekt wyjazd (move_out
), a z niego klienta i firmę, do której klient należy. Przekształć firm_id
na string i użyj metody prametrize
.
No i aby powyższe lepiej zrozumieć można przytoczyć jeszcze specyfikację
MoveOut
(wyjazd):
class MoveOut < ActiveRecord::Base belongs_to :customer end
Brak komentarzy:
Prześlij komentarz