यह व्यक्त करने के लिए कि समूह में एकाधिक उपयोगकर्ता हो सकते हैं, और उपयोगकर्ता एकाधिक समूहों से संबंधित हो सकता है , मैं निम्नलिखित संघों सेट:रेल: क्यों "has_many ...,: through => ..." एसोसिएशन के परिणाम "NameError: uninitialized निरंतर ..."
class Group < ActiveRecord::Base
has_many :users_groups
has_many :users, :through => :users_groups
end
class User < ActiveRecord::Base
has_many :users_groups
has_many :groups, :through => :users_groups
end
class UsersGroups < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
हालांकि, जब मैं टाइप करें:
Group.find(1).users
मैं:
NameError: uninitialized constant Group::UsersGroup
मैं क्या कर रहा हूँ गलत ?
धन्यवाद! यह 'उपयोगकर्ता समूह' नामक मॉडल रखने के लिए मेरे लिए अजीब/गलत लग रहा है। मैं नहीं चाहता कि उनमें से एक बहुवचन और दूसरा एकवचन हो। शायद मुझे मॉडल समूह का नाम बदलना चाहिए जैसे कि UserGroupPair, ताकि तालिका का नाम 'user_group_pairs' होगा। तुम क्या सोचते हो ? –
जब आप एक मॉडल में शामिल होते हैं, तो मानक अभ्यास एक शब्द के साथ आना है जो एसोसिएशन का वर्णन करता है। उदाहरण के लिए, समूह सदस्यता या कुछ। बस जांचने के लिए, क्या आप वाकई एक मॉडल में शामिल होने की ज़रूरत है? यदि जुड़ने के लिए तर्क की आवश्यकता नहीं है तो आप केवल एक टेबल से दूर हो सकते हैं। – Skilldrick
क्या आपका मतलब मॉडल नाम 'समूहमेम्बरशिप' और तालिका का नाम 'group_membership' है, यानी दोनों एकवचन? मुझे यकीन नहीं है कि मैं शामिल तालिका से छुटकारा पाने के बारे में आपका दूसरा बिंदु समझ गया हूं। क्या आप थोड़ा सा विस्तार कर सकते हैं? –