2013-03-07 7 views
5

तैयार करने वाले तालिका उपयोगकर्ताओं के लिए कस्टम table_name, मेरे पास उपयोगकर्ताओं (फ़्रांससर्स, बेल्जियमसर्स, ...) के लिए कई टेबल हैं और मैं डोमेन के आधार पर एक या दूसरे का उपयोग करना चाहता हूं, मैंने table_name_prefix और table_name के साथ प्रयास किया लेकिन यहमेरे उपयोगकर्ता के लिए

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 

डिबगर के लिए धन्यवाद काम नहीं हो रहा है, मुझे लगता है कि कहा जाता है, लेकिन नहीं है self.table_name_prefix देख सकते हैं। और अगर self.table_name अगर कहा जाता है, franceusers

कंसोल में User.table_name => "franceusers" टेबल उपयोगकर्ताओं के बजाय

User.table_name_prefix => "फ्रांस"

अधिक में खोज उन वसीयत अजीब, मैं activadmin का उपयोग भी कर रहा हूं, और जब मैं उपयोगकर्ता सूची ब्राउज़ करता हूं, तो मुझे एक त्रुटि होती है: MySQL 2 :: त्रुटि: 'ऑर्डर क्लॉज' में अज्ञात कॉलम 'franceusers.id': उपयोगकर्ताओं को चुनें। * उपयोगकर्ताओं द्वारा आदेश franceusers.id desc द्वारा LIMIT 30 ऑफ़सेट 0

ऐसा लगता है कि यह फ़ील्ड बी के लिए table_prefix ढूंढ सकता है के लिए नहीं

क्या मैं कुछ भी बुरा करता हूं? उपयोगकर्ताओं के टेबल नाम को बदलने का दूसरा तरीका है? मैं नहीं कर सकते एक में सभी उपयोगकर्ताओं तालिकाओं में शामिल होने के रूप में यह मेरे मालिक की एक निर्देश है: -s

धन्यवाद

उत्तर

0

आप उन के विभिन्न प्रकार है, तो और आपको लगता है कि वे एक अलग रूप में होना चाहिए ऊपर से एक आवश्यकता है डेटाबेस तो मैं शायद प्रत्येक के लिए एक उपयोगकर्ता वर्ग बनाउंगा (मान लीजिए कि हम 5-10 बात कर रहे हैं और 100 के दशक नहीं)।

एक फ़्रांस यूज़र और एक स्पेन यूज़र इत्यादि है। फिर सामान्य वर्ग को एक मॉड्यूल में लॉजिक आउट करें जिसे आप प्रत्येक कक्षा में शामिल कर सकते हैं। विभिन्न तालिकाओं में एक साथ जुड़ने और सही उपयोगकर्ता की खोज करने में सक्षम होने के लिए आपको लॉगिन/रजिस्टर/आदि नियंत्रकों को ओवरराइड करने की भी आवश्यकता होगी। आपको कई डेटाबेस तालिकाओं में ईमेल विशिष्टता बाधाओं जैसी चीजों को लागू करने की भी आवश्यकता होगी। असल में यह वास्तव में एक बुरा विचार की तरह लगता है और आपको बहुत सारे काम करना होगा जो आपको अन्यथा तैयार करने के लिए मुफ्त में मिलता है।

यह करने योग्य है लेकिन मैं आपको यह सुझाव दूंगा कि आपके बॉस को कई डेटा में अपने डेटा को विभाजित करने के लिए परेशानी का क्या कारण है और फिर उसकी समस्या को हल करने के लिए एक बेहतर तरीका ढूंढना। यह आसान रिपोर्टिंग के रूप में बस इतना आसान हो सकता है और उन समस्याओं को हल करने के लिए बहुत आसान और अधिक सुरुचिपूर्ण तरीके हैं, जो कि उपयोग की तुलना में आधे हैं और फिर इसकी कार्यक्षमता को ओवरराइड करते हैं।

शुभकामनाएँ :)

संबंधित मुद्दे