Crazy routes

Hello!

I'm using restful_authentication and I would like to have diferent views for logged users and not logged users. Logged users can edit and create items, and not logged user could only list items and show its features.

In my routes file I have:

map.namespace :admin do |admin|   map.resources :items, :controller => "admin/items", :path_prefix => 'admin' end

map.resources :items

In my views I have: <%= link_to '<b>Items</b>', items_path %>

The link_to always redirect to admin/item/index (except if I change the order in routes.rb, if I do always redirect to item/index).

Is it possible to redirect admin/item/index when user is logged in and redirect to item/index when user is not logged in?

Thanks

Not possible?

Daniel Oton wrote in post #970865:

Hello!

I'm using restful_authentication

Please replace it with Authlogic or Devise as soon as possible. restful_authentication is hard to work with due to its reliance on unmaintainable generated code.

and I would like to have diferent views for logged users and not logged users. Logged users can edit and create items, and not logged user could only list items and show its features.

In my routes file I have:

map.namespace :admin do |admin|   map.resources :items, :controller => "admin/items", :path_prefix => 'admin' end

map.resources :items

In my views I have: <%= link_to '<b>Items</b>', items_path %>

The link_to always redirect to admin/item/index (except if I change the order in routes.rb, if I do always redirect to item/index).

Is it possible to redirect admin/item/index when user is logged in and redirect to item/index when user is not logged in?

Sure. You could test current_user and build the link accordingly. But I'd recommend against doing this. Instead, have a separate "admin login" link on the items index page. That way you don't have to be checking logins all the time.

Best,

Thank you for your response.

I don't understand what you mean with "admin login"... There is only one user who can create, edit and delete. This user is the admin. The other "users" aren't users at all because they never log in.

With the namespace route I have now, my problem is when a "user" (visitor) is redirected to items_path, because the namespace route redirect to the admin view instead user view... (unless I change the order in routes.rb, but if I do that, when the admin is redirected to items_path the route used is map.resources :items)

Perhaps this is not the best way for doing this... Any suggestions?

PD: I would take a look to Authlogic for next projects

Thanks again!

Finally, I used "traditional" namespace:

  map.namespace :admin do |admin|     admin.resources :items   end

  map.resources :items

And the nested generated routes (admin_items_path,...).

It works fine, but It's neccesary to change form_for(@item) to form_for([:admin,@item) and link_to items_path to link_to admin_items_path, ...

Thanks!