The cleanest method is to scope your notes by user instead of
searching the whole class:

@note = @user.notes.find(params[:id])


On Sep 5, 7:25 pm, nobosh <bhellm...@gmail.com> wrote:
> This hack ends up working. Is there a cleaner, ruby trick to getting
> this to work?
>
>                         @note = Note.find(params[:id])
>                         @note_userid = @note.user_id
>                         @current_userid = current_user.id
>                         redirect_to(root_path) unless @current_userid == 
> @note_userid
>
> thxs!
>
> On Sep 5, 4:07 pm, nobosh <bhellm...@gmail.com> wrote:
>
>
>
> > Hello, I'm a Rails newbie.... Here's what I'm trying to do....
>
> > I created a scaffold for notes (t.text :content, t.integer :user_id)
> > What I want to do now is only allow user's to view notes that they
> > created. ie (== user_id)
>
> > In my /app/controllers/notes_controller.rb
>
> > I have the following:
>
> >     class NotesController < ApplicationController
> >         before_filter :authenticate
> >         before_filter :correct_user
> >     .
> >     .
> >     .
> >     def correct_user
> >       @noteuserid = Note.find(:conditions=>["note.user_id=?",
> > @noteuserid])
> >       redirect_to(root_path) unless current_user?(@noteuserid)
> >     end
>
> > I'm having problems understanding how to write the following line:
> > @noteuserid = Note.find(:conditions=>["note.user_id=?", @noteuserid])
>
> > Right now I'm using the system in the Rails 3 Tutorial Book:
> > railstutorial.org/chapters/sign-in-sign-out#sec:current_user
>
> > Seems like the problem is current_user is an object, not an ID... Not
> > sure how to make the two comparable?
>
> > Thanks

-- 
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-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to