Search code examples
ruby-on-railsroutesnested-resources

bizarre routing error though available in rake routes


i have

<li><%= link_to "Messages", user_messages_path %></li>

in my routes.rb i have

  resources :users do
    resources :messages
    member do
      get :following, :followers
    end
  end

when i do rake routes, it says....

user_messages GET    /users/:user_id/messages(.:format)      messages#index

the error is weird because if i add the list item tag on my _header partial in the layouts folder, visiting even my root page gives the error

No route matches {:controller=>"messages"}

however if i visit the url

http://localhost:3000/users/1/messages

im able to see the page. i do have a controller named messages_controller.rb also.

does anyone have an idea whats wrong? thanks


Solution

  • You have to give a user to user_messages_path, like

    <li><%= link_to "Messages", user_messages_path(@user) %></li>