SORU
27 ŞUBAT 2012, PAZARTESİ


hazırlamak ve birden çok "kullanıcı" modelleri

3.2 raylar kullanarak ve 2.0 vasiyet ediyorum ve Raylar oldukça yeniyim.

Gereksinimleri

Aşağıdaki elde etmek istiyorum:

  • 2 veya daha fazla "" modeller, örn. kullanıcı Üye, Müşteri, Yönetici
  • tüm modeller bazı gerekli alanlar (örn. paylaş e-posta ve parola)
  • her model bazı özel alanlar (örn. Müşteri için şirket sadece)
  • bazı alanlar paylaşılacak ama aynı doğrulama (örn. adı Müşteri Hizmetleri ama isteğe bağlı Üye) için gereklidir
  • tüm alanları biçimleri birbirinden farklıdır bu yüzden kayıt işlemi sırasında doldurulması gerekir
  • giriş formu benzersiz olmalıdır

Olası çözümler

Ve StackOverflow oldukça uzun bir süre araştırdım aradı, ama hiçbir şey beni (Java adamı, özür dilerim :) gibi görünüyor ve şimdi tamamen kafam karıştı. İki çözüm geldi:

Tek kullanıcı hazırlamak

En sık cevap. Sadece varsayılan Kullanıcı hazırlamak ve Üye ilişkileri--^ oluşturun . Kullanıcı ve Müşteri-->Kullanıcı. Benim endişem burada her model için özel bir kayıt sürecinden elde edebilirsiniz? Farklı şeyler ama hepsi bir karmaşa olarak sona erdi çalıştım!

Birden fazla vasiyet kullanıcılar

Bu özel bir kayıt işlemi çözer ve bana doğru gibi görünüyor, ama benzersiz bir oturum açma formu engelleyici. Geçersiz kılmak için öneriyor (Devise - login from two model) bir cevap Hazırlamak buldum::Modeller::Authenticatable.find_for_authentication(koşullar). Karışık gibi görünüyor (?) ve raylar işlerde yeni olduğum için soruyorum, eğer bu bir işe yarar mı bilmek istiyorum?

Tavsiyen için teşekkürler!

CEVAP
27 ŞUBAT 2012, PAZARTESİ


Aramıza Java adamı = hoş geldiniz), Raylar dünya beğeneceğinizi umuyoruz. Sadece, sorunu çözmek için 2 çözüm var:

  1. Her kullanıcı veritabanı ve ilgili model bir tablo oluşturmak için.
  2. Bir model oluşturmak her kullanıcı türü için veritabanı ve tek bir tablo oluşturun. Bu denilen tek tablo devralma (STI).

Hangi işletim sistemini seçmeliyim? Rolleri ortak öznitelikler bağlıdır. Eğer ortak olurlarsa neredeyse (örneğin bütün bir adı var, e-posta, cep telefonu, ...) ve birkaç öznitelikleri farklı, ben çok UÇUK bir çözüm öneriyoruz.

Nasıl STI yapacak? 1. Sadece create hazırlamak kullanıcı modeli ve tablo komutu rails generate devise User 2. Veritabanı bir geçiş kullanarak kullanıcı tablo için dize veri türü olan bir sütun type adlı ekleyin. 3. Her kullanıcı türü için bir model (örneğin rails g model admin)oluştur 4. Admin kullanıcı modeli devraldığı sınıf olun

class Admin < User
end

O = bitirdiniz) ... Yupeee

Bir yönetici noktalar örneğin yönetici öznitelikleri nerede Admin.create(...) komut, e-posta, adı oluşturma çalışması için, ...

question bu sana çok yardımcı olabilir sanırım

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006