2012-12-19 20 views
8

UsersPrograms में एक ही तालिका में Belongs_to और has_and_belongs_to_many है। इन्हें अन्य Users द्वारा पीछा/पसंद किया जा सकता है। हालांकि, Program हमेशा एक निर्माता होगा।रेलों

तो मुझे पसंद/अनुसरण करने के लिए ProgramsUsers तालिका की आवश्यकता है। क्या "निर्माता" उस तालिका में एक प्रकार के रिश्ते के रूप में भी जाना होगा, या Program भी belongs_to एक विशिष्ट विशिष्ट User कर सकता है?

तो संक्षेप में:

Program.rb

class Program < ActiveRecord::Base 
    has_and_belongs_to_many :users #Likes/Follows 
    belongs_to :user     #Creator 

इस स्वीकार्य है या इस गरीब मॉडलिंग है?

उत्तर

8

मैं आप इस

class Program < ActiveRecord::Base 
    has_and_belongs_to_many :users #Likes/Follows 
    belongs_to :creator, ::class_name => 'User', :foreign_key => 'creator_id' 

इस तरह की तरह कुछ कर सकते हैं विश्वास करते हैं, तो आप अपने programs मेज पर एक creator_id क्षेत्र है, और @program.creator का उपयोग कर इसे उपयोग कर सकते हैं। ओह, और बीटीडब्ल्यू, यह खराब मॉडलिंग नहीं है।

+0

ओह, मैं की तरह मैंने देखा है उससे पहले, याद रख लिया है चाहिए। यही वही है जो मैं चाहता हूं। धन्यवाद! – dewyze

3

कुछ इस तरह:

class Program < ActiveRecord::Base 
    has_many :followings 
    has_many :followers, :class_name => 'User', :through => :followings 
    belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id' 
संबंधित मुद्दे