nulltek
nulltek

Reputation: 3337

No route matches controller in rails app

I have an app where I'm creating a get action called "new_911". When I put new_911_call_path in the application layout I get an error "no route matches new_911 controller: calls". Yet there is an action in the calls controller called new_911. What am I doing wrong?

Calls Controller:

def new_911
    @call = Call.new :call_status => "open"
    respond_with @call
end

application.html.erb

<li><%= link_to 'New 911 Call', new_911_call_path %></li>

routes.rb

resources :calls do
    member do
      post 'close'
      post 'cancel'
      post 'note'
      get  'new_return'
      get 'duplicate_call'
      get 'edit_times'
      put 'update_billing'
      get 'new_911'
    end

rake routes: new_911_call GET /calls/:id/new_911(.:format) calls#new_911

Upvotes: 1

Views: 53

Answers (2)

nulltek
nulltek

Reputation: 3337

Figured it out. I was using a member instead of a collection. Also using new_911 gave me a constant error so I changed it to EmergencyCalls for my controller schema and utilized the normal "new" action. Added resources :emergency_calls to my routes file and it worked.

Sorry for the goof.

Upvotes: 0

Enrique Galindo
Enrique Galindo

Reputation: 221

You need to add the parameter to the route. You're using a member route so you need to add the id parameter, take a look of this. You may need to change that route.

Upvotes: 1

Related Questions