Hi,
I have a url scheme where I would like to include a public and private
interface, and I have a nested resource for it.
The two schemes are
/my/books/pages
/:username/books/pages
I would like to sperate the books and pages controllers into
MyBooks, MyPages #=> the user here will always be the currently logged
in
user
and
PublicBooks, PublicPages #=> The users books will be whatever user is
specified.
All public stuff is read only, although there will be a further nested
resource on both (comments) that should be mapped to one controller to
controll all comments, read and write.
I’m thinking at the moment that this will eliminate a lot of messy
controller logic that tries to decide if I can access things or not, and
tries to decide what user the context of the request is in etc.
The messiest that I can see this getting is if the user is accessing
thier
own book through a public interface and wants to say edit it. In this
case
I’m thinking of just re-directing to the edit action of the
MyBooksController
I really don’t have a clue how to proceed here. Here’s what I’m
thinking
but I don’t believe this works.
map.resources :books :path_prefix => ‘my’, :controller =>
‘my_books_controller’ do
books.resources :pages, :controller => ‘my_pages_controller’ do
pages.resources :comments
end
end
map.resources :books :path_prefix => ‘/:username’, :controller =>
‘public_books_controller’ do
books.resources :pages, :controller => ‘public_pages_controller’ do
pages.resources :comments
end
end
Can anyone give a little advice please? Is this even a good way to go,
or
should I be looking elsewhere for a solution?
Cheers
Daniel