2010-04-29 19 views
7

Uygulamamda paperclip kullanarak ekleri olan birçok şey var.raylar + ataç: Genel "Ek" modeli iyi bir fikir midir?

  • İstemcilerin bir logosu vardır.
  • Mağazalarda bir veya daha fazla resim olabilir. Bu resimler, ek olarak, alındıkları tarih gibi diğer bilgilerine de sahip olabilir.
  • Ürünler, kategorize edilmiş (fonttan, arkadan vb.) Bir veya daha fazla resmine sahip olabilir. Şimdilik

, benim Modelleri her biri kendi "ataç-alanları" (Müşteri has_attached_file) eklerini veya Has_many modellerini dosyaları (Mağaza has_many StorePictures, Ürün has_many ProductPictures)

Müvekkilim de vardır vardır Gelecekte sisteme daha fazla eklenti ekleyebileceğimizi söyledi (yani, müşterilerin indirmesi için pdf belgeleri).

Uygulamamın declarative_authorization ile uygulanan oldukça karmaşık bir yetkilendirme sistemi var. Örneğin, 'görmesi' için izin verilmeyen bir üründen resimleri indiremezsiniz.

Kodumu yeniden gözden geçirmeyi düşünüyorum, böylece genel bir "Ek" modeline sahip olabilirim. Yani herhangi bir model has_many :attachments olabilir.

Bu bağlamda, iyi bir fikir gibi geliyor mu? Yoksa Foos ve FooPictures yapmaya devam etmeli miyim?

cevap

5

Genel olarak bir Genel Eklenti sınıfının yönetilebilmesinin, diğer çeşitli kayıt türlerindeki bağımsız eklerden daha kolay olduğu durumlar bulunduğunu buldum. Basit Ekleme yaklaşımının sadece aşağı tarafı, üretilmesi gereken küçük resimlerin, olası tüm ekler için, duruma göre değil, aynı anda eş zamanlı olarak tanımlanmasıdır.

Daha fazla esneklik sağlayan bir karma yaklaşım, bir 'tür' sütunu ekleyerek ve belirli stilleri tanımlayan ProductAttachment gibi kullanıma özel alt sınıflar oluşturarak bir STI Tabanlı Eklenti tablosu oluşturmaktır.

+0

Cevabınız için teşekkür ederiz. Sonunda, bazı yerlerde ihtiyaç duyulan ekstra alanlar nedeniyle, yeniden hesaplamayı bitirmedim. CYB yapmak orada yardımcı olurdu, ancak ilgili çalışma buna değmezdi. – kikito

İlgili konular