I have three models in Rails as : Curriculum, Grade and Topics. The relationship scenario is like : Curriculum ''International Baccalaureate(IB)'' in grade ''6'' has_many Topics ( t1,t2,t3 and CompareFraction) Curriculum ''CBSE'' in grade ''5'' has_many Topics (t1,t2,t4,t5 and CompareFraction) [ A Topic ''Compare Fraction'' will be taught in many different curriculums but maybe in different grades ] A Grade, say 5 will itself be a part of all Curriculums like IB,CBSE. I need to store information such that for a Topic Compare Fraction, I can say: It is taught in IB in grade 5 It is taught in CBSE in grade 4. How can I set this up in Rails? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/3doEXjYfH7sJ. For more options, visit https://groups.google.com/groups/opt_out.
Colin Law
2013-Mar-26 09:15 UTC
Re: Defining Relationship ( Many to Many) for 3 Models in Rails
On 26 March 2013 08:29, Myth17 <nitishupreti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I have three models in Rails as : Curriculum, Grade and Topics. > > The relationship scenario is like : > > Curriculum ''International Baccalaureate(IB)'' in grade ''6'' has_many Topics ( > t1,t2,t3 and CompareFraction) > > Curriculum ''CBSE'' in grade ''5'' has_many Topics (t1,t2,t4,t5 and > CompareFraction) [ A Topic ''Compare Fraction'' will be taught in many > different curriculums but maybe in different grades ] > > A Grade, say 5 will itself be a part of all Curriculums like IB,CBSE. > > I need to store information such that for a Topic Compare Fraction, I can > say: > > It is taught in IB in grade 5 > > It is taught in CBSE in grade 4. > > How can I set this up in Rails?You have not given us enough information. I have no idea what a Grade object is. What are the fields of a grade object? Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Myth17
2013-Mar-26 09:33 UTC
Re: Defining Relationship ( Many to Many) for 3 Models in Rails
Grade is anything like 4,5 or say HighSchool with a ''name'' and ''description'' attribute. On Tuesday, March 26, 2013 2:45:16 PM UTC+5:30, Colin Law wrote:> > On 26 March 2013 08:29, Myth17 <nitish...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <javascript:>> wrote: > > I have three models in Rails as : Curriculum, Grade and Topics. > > > > The relationship scenario is like : > > > > Curriculum ''International Baccalaureate(IB)'' in grade ''6'' has_many > Topics ( > > t1,t2,t3 and CompareFraction) > > > > Curriculum ''CBSE'' in grade ''5'' has_many Topics (t1,t2,t4,t5 and > > CompareFraction) [ A Topic ''Compare Fraction'' will be taught in many > > different curriculums but maybe in different grades ] > > > > A Grade, say 5 will itself be a part of all Curriculums like IB,CBSE. > > > > I need to store information such that for a Topic Compare Fraction, I > can > > say: > > > > It is taught in IB in grade 5 > > > > It is taught in CBSE in grade 4. > > > > How can I set this up in Rails? > > You have not given us enough information. > > I have no idea what a Grade object is. What are the fields of a grade > object? > > Colin >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/eaNWuPGE11oJ. For more options, visit https://groups.google.com/groups/opt_out.
Colin Law
2013-Mar-26 09:43 UTC
Re: Defining Relationship ( Many to Many) for 3 Models in Rails
On 26 March 2013 09:33, Myth17 <nitishupreti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Grade is anything like 4,5 or say HighSchool with a ''name'' and ''description'' > attribute.Please don''t top post, it makes it difficult to follow the thread. Thanks. So a curriculum has many grades and a grade has many curriculums. A topic is associated with a set of grade/curriculum combinations. I think the solution is a join table (you will have to think of a good name for it), I will say c_g_ts to save typing here. So: Curriculum has_many c_g_ts and has_many topics through c_g_t and has_many grades through c_g_t Grade has_many c_g_ts and has_many curriculums through c_g_t and has_many topics through c_g_t Topic has_many ... CGT belongs_to Curriculum and Grade and Topic. Does that sound as if it will do the job? Colin> > On Tuesday, March 26, 2013 2:45:16 PM UTC+5:30, Colin Law wrote: >> >> On 26 March 2013 08:29, Myth17 <nitish...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> > I have three models in Rails as : Curriculum, Grade and Topics. >> > >> > The relationship scenario is like : >> > >> > Curriculum ''International Baccalaureate(IB)'' in grade ''6'' has_many >> > Topics ( >> > t1,t2,t3 and CompareFraction) >> > >> > Curriculum ''CBSE'' in grade ''5'' has_many Topics (t1,t2,t4,t5 and >> > CompareFraction) [ A Topic ''Compare Fraction'' will be taught in many >> > different curriculums but maybe in different grades ] >> > >> > A Grade, say 5 will itself be a part of all Curriculums like IB,CBSE. >> > >> > I need to store information such that for a Topic Compare Fraction, I >> > can >> > say: >> > >> > It is taught in IB in grade 5 >> > >> > It is taught in CBSE in grade 4. >> > >> > How can I set this up in Rails? >> >> You have not given us enough information. >> >> I have no idea what a Grade object is. What are the fields of a grade >> object? >> >> Colin-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
Myth17
2013-Mar-26 10:36 UTC
Re: Defining Relationship ( Many to Many) for 3 Models in Rails
On Tuesday, March 26, 2013 3:13:05 PM UTC+5:30, Colin Law wrote:> On 26 March 2013 09:33, Myth17 <nitish...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <javascript:>> wrote: > > Grade is anything like 4,5 or say HighSchool with a ''name'' and > ''description'' > > attribute. > > Please don''t top post, it makes it difficult to follow the thread. > Thanks. > > So a curriculum has many grades and a grade has many curriculums. > A topic is associated with a set of grade/curriculum combinations. > > I think the solution is a join table (you will have to think of a good > name for it), I will say c_g_ts to save typing here. So: > Curriculum has_many c_g_ts and has_many topics through c_g_t and > has_many grades through c_g_t > Grade has_many c_g_ts and has_many curriculums through c_g_t and > has_many topics through c_g_t > Topic has_many ... > > CGT belongs_to Curriculum and Grade and Topic. > > Does that sound as if it will do the job? > > Colin > > > > > > On Tuesday, March 26, 2013 2:45:16 PM UTC+5:30, Colin Law wrote: > >> > >> On 26 March 2013 08:29, Myth17 <nitish...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> > I have three models in Rails as : Curriculum, Grade and Topics. > >> > > >> > The relationship scenario is like : > >> > > >> > Curriculum ''International Baccalaureate(IB)'' in grade ''6'' has_many > >> > Topics ( > >> > t1,t2,t3 and CompareFraction) > >> > > >> > Curriculum ''CBSE'' in grade ''5'' has_many Topics (t1,t2,t4,t5 and > >> > CompareFraction) [ A Topic ''Compare Fraction'' will be taught in many > >> > different curriculums but maybe in different grades ] > >> > > >> > A Grade, say 5 will itself be a part of all Curriculums like IB,CBSE. > >> > > >> > I need to store information such that for a Topic Compare Fraction, I > >> > can > >> > say: > >> > > >> > It is taught in IB in grade 5 > >> > > >> > It is taught in CBSE in grade 4. > >> > > >> > How can I set this up in Rails? > >> > >> You have not given us enough information. > >> > >> I have no idea what a Grade object is. What are the fields of a grade > >> object? > >> > >> Colin >Apologies for Top Posting. The solution looks great. Thanks Colin! I was aware of has_many through but did not know I could apply it here for three models. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/Z1tgeybMgI0J. For more options, visit https://groups.google.com/groups/opt_out.