I’m newbie on rails and getting an error while try to add new method on my controller 🙁
I have a controller under admin path;
Admin::MyUsersController < ApplicationController
before_filter :......
def index
redirect_to :action => :show_my_action
end
def show_my_action
...
...
end
My controller like this but not this exactly.
In my routes.rb
namespace "admin" do
resources :my_users do
get "show_my_action"
end
end
When my routes.rb is like this, im getting error => No route matches {:action=>”show_my_action”, :controller=>”admin/my_users”}
namespace "admin" do
resources :my_users do
get "show_my_action", :on => :collection
end
end
when my routes.rb like this then no error :S
Why im getting this error. I can use first declaration for other controllers which is on root path.
You are adding actions to RESTful actions, if you don’t specify a collection, or a member, the route can’t know what you want. If you define like this:
How can routes know which route you want:
So, you need to specify it’s member or collection:
will have route:
my_users/show_my_action, and:will have route:
my_users/:id/show_my_actionYou can check at Adding More RESTful Actions.