2016-06-03 4 views
0

Как я могу отделить стили для разных моделей?Скрепки отдельных стилей

У меня есть Photo model, которые генерируют мои стили

large:'300x300#',huge:'800x800'

также у меня есть две модели ведьмы использовать эти стили

Product

и

Post

поэтому я хочу использовать

large style только для Product

и huge style только для Post

product => has_many :photos 

post => has_one :photo 

photo => belongs_to :post 
     belongs_to :product 
has_attached_file :image, :styles => {large:'300x300#',huge:'800x800'} 

Возможно ли это?

+0

укажите код модели –

+0

@ МалъСкрылевъ обновлено – user

+0

где код скрепления? –

ответ

0

Я совет вам separte изображения по типу модели изображения с использованием STI и полиморфизмом, следовательно, добавить imageable_type, imageable_id и type поля, фото модели, так:

приложения/модель/photo.rb :

class Photo < AR::Base 
    belongs_to :imageable, polymorphic: true 
end 

приложение/модели/фото/large_photo.rb:

class LargePhoto < Photo 
    has_attached_file :image, :styles => { large:'300x300#' } 
end 

приложение/модель/фото/huge_photo.rb:

class HugePhoto < Photo 
    has_attached_file :image, :styles => { huge:'800x800' } 
end 

приложения/модель/product.rb:

class Product < AR::Base 
    has_many :large_photos, as: imageable 
end 

приложения/модель/post.rb:

class Post < AR::Base 
    has_one :huge_photo, as: imageable 
end 

BUT для меня, лучше использовать carrierwave, а не paperclip для этого случая.

Смежные вопросы