Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

adding controllers with a namespace admin as a subfolder

i have a simple cms on ROR 3.2. with this folder scheme:

app |controllers |my controllers

but i wanted to have an "admin" section where i could have some controllers too. so i created

rails generate controller admin/Users

app | controllers |admin & my admin controllers

so my file is:

users_controller.rb
class Admin::UsersController < ApplicationController

  def index
    render(:text => "sou o index!")
  end

  def list
    render(:text => "sou o list")
  end

end

On my routes i have:

namespace :admin do
    resources :users
  end

match ':controller(/:action(/:id))(.:format)'

Im new to rails and i cant figure out the solution. Cant find it anywhere.

The PROBLEM is i try do acess:

http://localhost:3000/admin/users/list

and i get this error:

Unknown action The action 'show' could not be found for Admin::UsersController

like image 544
Miguel J. Avatar asked Feb 12 '12 00:02

Miguel J.


2 Answers

You seem to not have an understanding of how Rails's RESTful routing works by default. I recommend reading the Resource Routing section of the Rails Guides. By default, when using resources in your routes, the show action is what is used to display a particular model record. You can customize this behavior to an extent in that you can change the URL that for the show action, but not the method name in the model:

resources :users, :path_names => { :new => 'list' }

If you are going to use RESTful routing (which you should), you should remove the default route (match ':controller(/:action(/:id))(.:format)'). Also, you can run rake routes at any time from the terminal to see details about your current routing configuration.

like image 54
Andrew Marshall Avatar answered Oct 03 '22 00:10

Andrew Marshall


Your on the right track, however, there are a few more steps involved to complete your solution for a backend admin CRUD section. Check out the following example of how to create it yourself:

https://stackoverflow.com/a/15615003/2207480

like image 34
Stefan Muntwyler Avatar answered Oct 03 '22 01:10

Stefan Muntwyler