I see Xavior - that's makes a lot of sense especially with that
before_filter. I'll refactor a little bit. Thanks.

On Sep 29, 2:23 am, "Xavier Noria" <[EMAIL PROTECTED]> wrote:
> On Mon, Sep 29, 2008 at 6:45 AM, Tim K. <[EMAIL PROTECTED]> wrote:
> > So I'm using nested routes for a users model that has measurements and
> > journals... like this:
>
> > map.resources :users do |users|
> >  users.resources :journals
> >  users.resources :measurements
> > end
>
> > This of course builds routes as something like:
>
> > /user/:user_id/journals/:id
> > /user/:user_id/measurements/:id
>
> > In the case of this application the logged in user is only going to be
> > accessing his or her own resources (journals and measurements). So my
> > question is:  What is the proper way to accommodate that in routing so
> > that /user/:user_id isn't necessary and just going to /journals or /
> > journals/:id would ensure that I'm going to the the currently logged
> > in user's journals or measurements? And in turn, what would be the
> > best way of making sure that users can't type /journal/:id and see
> > another users record once that :user_id was trimmed off (they should
> > only be able to see their own).
>
> Two things:
>
> 1) A has_many do not necesseraly mean a nested resource _in your
> interface_. You can simply configure
>
>    map.resources :journals
>    map.resources :measurements
>
> 2) Access control is implemented via AR finders. In this case you'd do
>
>    def index
>     [EMAIL PROTECTED] = current_user.journals
>    end
>
>    # before filter
>    def find_journal
>      current_user.journals.find(params[:id])
>    rescue
>      redirect_to journals_url
>    end
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to