Hello, i have "a" has many "b", "b" has many "c", and "c" has many "d" Now... "d" is a user model, and I have a current_user helper method defined. If i navigate to an "a" show page, how can I make sure that my current_user ("d") is part of that "a"? meaning how can i make sure that current_user belongs to "a"? Because there is the b, and c in between the "d" and "a", how can I check to see if my current_user ("d") belongs to "a"? And I being clear? thanks :) P.S. heres an example of what I want if there is only one level of associations-- --------------------------------------------------------- <% if !current_user == @post.user %> <p>This post belongs to another user. Please navigate away immediately.</p> <% else %> # The content of edit.html.erb <% end %> ----------------------------------------------------------- but that only compares the user, with the model that is up one level. (In this case post) How can i check to see if current_user is part of a higher level? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
a == current_user.c.b.a On Apr 16, 9:06 pm, David Zhu <dzwestwindso...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hello, > > i have "a" has many "b", "b" has many "c", and "c" has many "d" > > Now... "d" is a user model, and I have a current_user helper method > defined. > > If i navigate to an "a" show page, how can I make sure that my > current_user ("d") is part of that "a"? meaning how can i make sure > that current_user belongs to "a"? Because there is the b, and c in > between the "d" and "a", how can I check to see if my current_user > ("d") belongs to "a"? > > And I being clear? thanks > > :) > > P.S. > > heres an example of what I want if there is only one level of > associations-- > > --------------------------------------------------------- > > <% if !current_user == @post.user %> > > <p>This post belongs to another user. Please navigate away > immediately.</p> > > <% else %> > > # The content of edit.html.erb > > <% end %> > > ----------------------------------------------------------- > > but that only compares the user, with the model that is up one level. > (In this case post) > > How can i check to see if current_user is part of a higher level? > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
thank you sharagoz! But i have a question- is a, b, c supposed to instance variables? (should i have the @ in front of them, and then define them in the contrller?) or does rails know what tables I''m reffering to already? On Apr 16, 4:13 pm, Sharagoz <shara...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> a == current_user.c.b.a > > On Apr 16, 9:06 pm, David Zhu <dzwestwindso...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > Hello, > > > i have "a" has many "b", "b" has many "c", and "c" has many "d" > > > Now... "d" is a user model, and I have a current_user helper method > > defined. > > > If i navigate to an "a" show page, how can I make sure that my > > current_user ("d") is part of that "a"? meaning how can i make sure > > that current_user belongs to "a"? Because there is the b, and c in > > between the "d" and "a", how can I check to see if my current_user > > ("d") belongs to "a"? > > > And I being clear? thanks > > > :) > > > P.S. > > > heres an example of what I want if there is only one level of > > associations-- > > > --------------------------------------------------------- > > > <% if !current_user == @post.user %> > > > <p>This post belongs to another user. Please navigate away > > immediately.</p> > > > <% else %> > > > # The content of edit.html.erb > > > <% end %> > > > ----------------------------------------------------------- > > > but that only compares the user, with the model that is up one level. > > (In this case post) > > > How can i check to see if current_user is part of a higher level? > > > -- > > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Apr 16, 2010, at 4:17 PM, David Zhu wrote:> thank you sharagoz! But i have a question- is a, b, c supposed to > instance variables? (should i have the @ in front of them, and then > define them in the contrller?) or does rails know what tables I''m > reffering to already?So flipping the associations around, d belongs_to c c belongs_to b b belongs_to a Implying that your user model (d) contains a c_id (and only associates to a single c) If that''s really true, then you don''t even let the /show/a request complete (assuming that you have a login required filter otherwise you have to check logged_in? or whatever makes current_user valid). def show a = A.find_by_id(params[:id]) if current_user.c.b.a != a redirect_to :action => ''show'', :id => current_user.c.b.a end end Of course, you can choose to redirect somewhere else, put an error page up, or anything else that suits you. Your question about whether a, b, and c are instance variables reveals that you need to do some very basic learning about Rails and ActiveRecord associates in particular. -Rob P.S. In fact, there''s an alternate way to structure the find against A that you should discover while you learn Rails. There''s a beta version of the next edition of "Agile Web Development with Rails" from the Pragmatic Bookshelf.> > On Apr 16, 4:13 pm, Sharagoz <shara...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> a == current_user.c.b.a >> >> On Apr 16, 9:06 pm, David Zhu <dzwestwindso...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >> >> >>> Hello, >> >>> i have "a" has many "b", "b" has many "c", and "c" has many "d" >> >>> Now... "d" is a user model, and I have a current_user helper method >>> defined. >> >>> If i navigate to an "a" show page, how can I make sure that my >>> current_user ("d") is part of that "a"? meaning how can i make sure >>> that current_user belongs to "a"? Because there is the b, and c in >>> between the "d" and "a", how can I check to see if my current_user >>> ("d") belongs to "a"? >> >>> And I being clear? thanks >> >>> :) >> >>> P.S. >> >>> heres an example of what I want if there is only one level of >>> associations-- >> >>> --------------------------------------------------------- >> >>> <% if !current_user == @post.user %> >> >>> <p>This post belongs to another user. Please navigate away >>> immediately.</p> >> >>> <% else %> >> >>> # The content of edit.html.erb >> >>> <% end %> >> >>> ----------------------------------------------------------- >> >>> but that only compares the user, with the model that is up one >>> level. >>> (In this case post) >> >>> How can i check to see if current_user is part of a higher level? >> >>> --Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
thanks guys, all of u deserve 5 stars :) On Apr 16, 4:40 pm, Rob Biedenharn <R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org> wrote:> On Apr 16, 2010, at 4:17 PM,DavidZhuwrote: > > > thank you sharagoz! But i have a question- is a, b, c supposed to > > instance variables? (should i have the @ in front of them, and then > > define them in the contrller?) or does rails know what tables I''m > > reffering to already? > > So flipping the associations around, > > d belongs_to c > c belongs_to b > b belongs_to a > > Implying that your user model (d) contains a c_id (and only associates > to a single c) > > If that''s really true, then you don''t even let the /show/a request > complete (assuming that you have a login required filter otherwise you > have to check logged_in? or whatever makes current_user valid). > > def show > a = A.find_by_id(params[:id]) > if current_user.c.b.a != a > redirect_to :action => ''show'', :id => current_user.c.b.a > end > end > > Of course, you can choose to redirect somewhere else, put an error > page up, or anything else that suits you. > > Your question about whether a, b, and c are instance variables reveals > that you need to do some very basic learning about Rails and > ActiveRecord associates in particular. > > -Rob > > P.S. In fact, there''s an alternate way to structure the find against A > that you should discover while you learn Rails. There''s a beta > version of the next edition of "Agile Web Development with Rails" from > the Pragmatic Bookshelf. > > > > > > > On Apr 16, 4:13 pm, Sharagoz <shara...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> a == current_user.c.b.a > > >> On Apr 16, 9:06 pm,DavidZhu<dzwestwindso...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > >>> Hello, > > >>> i have "a" has many "b", "b" has many "c", and "c" has many "d" > > >>> Now... "d" is a user model, and I have a current_user helper method > >>> defined. > > >>> If i navigate to an "a" show page, how can I make sure that my > >>> current_user ("d") is part of that "a"? meaning how can i make sure > >>> that current_user belongs to "a"? Because there is the b, and c in > >>> between the "d" and "a", how can I check to see if my current_user > >>> ("d") belongs to "a"? > > >>> And I being clear? thanks > > >>> :) > > >>> P.S. > > >>> heres an example of what I want if there is only one level of > >>> associations-- > > >>> --------------------------------------------------------- > > >>> <% if !current_user == @post.user %> > > >>> <p>This post belongs to another user. Please navigate away > >>> immediately.</p> > > >>> <% else %> > > >>> # The content of edit.html.erb > > >>> <% end %> > > >>> ----------------------------------------------------------- > > >>> but that only compares the user, with the model that is up one > >>> level. > >>> (In this case post) > > >>> How can i check to see if current_user is part of a higher level? > > >>> -- > > Rob Biedenharn http://agileconsultingllc.com > R...-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.