2013-03-07 22 views
5

benim uygulamam için, kullanıcılar için birkaç tablo var (fransa, belgiumusers, ...) ve tablo_name_prefix ve table_name ile denedim ama etki alanı bağlı olarak birini kullanmak istiyorum ama hata ayıklayıcıtablo uygulaması için tablo kullanıcılarına özel tablo_adı

class User < ActiveRecord::Base 
rolify 
# Include default devise modules. Others available are: 
# :token_authenticatable, :confirmable, 
# :lockable, :timeoutable and :omniauthable 
devise :database_authenticatable, :registerable, #:confirmable, 
:recoverable, :rememberable, :trackable, :validatable 

def self.table_name 
debugger 
'franceusers' 
end 

def self.table_name_prefix 
debugger 
'france' 
end 
end 

sayesinde işe gibi görünüyor, bunu aradım ama değil self.table_name_prefix görebilirsiniz. Ve adlandırılan eğer self.table_name, tablolar kullanıcılara yerine franceusers konsolda

User.table_name => "franceusers"

User.table_name_prefix => "fransa"

daha fazlasına arama kullanıcılarını tasarlamak bile garip, ben de activeadmin kullanarak im ve kullanıcı listesine göz attığımda, bir hata var: Mysql2 :: Hata: 'sipariş yan tümcesinde' Bilinmeyen sütun 'franceusers.id': kullanıcıları SEÇİN. * FROM kullanıcıları tarafından franceusers.id desc LİMİT 30 OFSET 0

Bu alan b için table_prefix dosyasını bulabilir FROM için değil.

Kötü bir şey yapıyorum? kullanıcıların tablo adını değiştirmek için başka bir yolu var mı? Farklı kullanıcı türleri varsa

sayesinde

cevap

0

-s ve onlar her farklı olması gerektiğini yukarıdan bir şartı vardır: benim patron bir yönerge olduğu gibi hepsi bir arada kullanıcıların tabloları birleştirmek olamaz veritabanları o zaman muhtemelen her biri için bir kullanıcı sınıfı oluşturabilirim (5-10 ve 100'ler değil).

Bir FranceUser ve SpainUser vb. Var. Ardından, ortak tasarım mantığını her bir sınıfa dahil edebileceğiniz bir modüle çıkarın. Ayrıca, çeşitli tabloları birleştirebilmek ve doğru kullanıcıyı arayabilmek için oturum açma/yazma/etc denetleyicilerini geçersiz kılmanız gerekecektir. Birden çok veritabanı tablosunda e-posta benzersizliği kısıtlamaları gibi şeyler de uygulamanız gerekir. Temel olarak, gerçekten kötü bir fikir gibi geliyor ve başka bir şekilde, seninle özgürce halledebileceğin çok fazla iş yapmak zorunda kalacaksın.

Bu yapılabilir, ancak patronunuzun verilerinizi birden fazla tabloya bölmek için kullandığı kullanım durumunu ve daha sonra sorunu çözmek için daha iyi bir yol bulmayı öneririm. Kolay raporlamayı istemek kadar basit bir şey olabilir ve bu problemleri çözme yöntemini kullanmaktan çok daha basit ve daha zarif yollar vardır ve daha sonra işlevselliğinin yarısını geçersiz kılar.

İyi şanslar :)