मेरे पास एक सरल मॉडल है:
वर्ग उपयोगकर्ता & lt; ActiveRecord :: बेस has_and_belongs_to_many: भूमिकाएं अंत कक्षा भूमिका & lt; ActiveRecord :: बेस has_and_belongs_to_many: उपयोगकर्ता समाप्त मैंने एक साधारण शामिल तालिका बनाई है:
वर्ग CreateUsersRoles & lt; ActiveRecord :: माइग्रेशन डीएफ़ self.up create_table: users_roles,: id = & gt; झूठी do | t | T.integer: user_id t.integer: role_id t.timestamps अंत end def self.down drop_table: users_roles एंड एंड माइग्रेशन के बाद, shema.rb निम्नलिखित है:
create_table "भूमिकाएं",: बल = & gt; सच है | टी | T.string "name" t.datetime "created_at" t.datetime "updated_at" अंत create_table "users",: force = & gt; सच है | टी | T.string "लॉगिन" t.string "password" t.datetime "created_at" t.datetime "update_at" अंत create_table "users_roles",: id = & gt; गलत, बल = & gt; सच है | टी | T.integer "user_id" t.integer "created_at" t.datetime "created_at" t.datetime "updated_at" end प्रविष्टियां यहां एक ही क्रम में प्रस्तुत की गई हैं, जैसा कि "स्कीमा .rb "
मैंने निम्न तरीके से जुड़नार का आयोजन किया:
# roles.yml उपयोगकर्ता: नाम: उपयोगकर्ता व्यवस्थापक: नाम: व्यवस्थापक मध्यस्थ: नाम: मध्यस्थ # users.yml User1: Login: User1 पासवर्ड: User1 भूमिकाएं: उपयोगकर्ता उपयोगकर्ता 2: लॉगिन: उपयोगकर्ता 2 पासवर्ड: उपयोगकर्ता 2 भूमिकाएं: व्यवस्थापक, मॉडरेटर User3: लॉगिन: उपयोगकर्ता पासवर्ड: उपयोगकर्ता 3 भूमिकाएं: मॉडरेटर और एक समस्या है : "रेक डीबी: जुड़नार: लोड" रेल पर एक शामिल तालिका के नाम के बारे में शिकायत होती है:
SQLite3 :: SQLException: ऐसा कोई सारणी नहीं है: roles_users: "roles_users" से हटाएं WHERE 1 = 1 < / P>
सवाल यह है - तालिका "users_roles" है, जबकि क्यों "roles_users" की अपेक्षा है?
जब रेलगाड़ी इसमें शामिल होने के लिए सहयोग बनाता है तो यह उम्मीद करता है कि मॉडल को अल में होना चाहिए फ़ैडबाज़ी क्रम चूंकि आर आपके पहले आता है, यह इसे भूमिकाओं वाले के रूप में बनाता है।
मेरा सुझाव है कि आप शामिल होने के तालिका का नाम बदलें, वैकल्पिक रूप से, आप : join_table = & gt; "Users_roles" दोनों संगठनों के लिए।
Comments
Post a Comment