thanks guys, all of u deserve 5 stars :)
On Apr 16, 4:40 pm, Rob Biedenharn <[email protected]> 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 <[email protected]> wrote: > >> a == current_user.c.b.a > > >> On Apr 16, 9:06 pm,DavidZhu<[email protected]> 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 > [email protected] > > -- > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]. > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

