undefined method error

Hello everyone,

              I am following the Practical Rails: Social Networking sites book. In chapter 7 photo gallery I am getting a

NoMethodError in Pages#show

Showing layouts/_menu.rhtml where line #12 raised:

undefined method `new_entry_path' for #<ActionView::Base:0x52fa56c>

Extracted source (around line #12):

9: <% if is_logged_in? %> 10: <li>Logged in as: <i><%= logged_in_user.username %></i></li> 11: <li><%= link_to 'My Profile', edit_user_path(logged_in_user) %></li> 12: <li><%= link_to 'New Blog Post', new_entry_path(:user_id => logged_in_user) -%></li> 13: <li><%= link_to 'Upload Photo', user_new_photo_path(:user_id => logged_in_user) -%></li> 14: <li><%= link_to 'Logout', {:controller => 'account', :action => 'logout'}, :method => :post %></li> 15: <% else %>

I am using rails 2.0.2 over windows vista. Can someone please explain me whats wrong?

Do you have a controller named entries? Do you have a route set up for it:

map.resources :entries

Ya I have a 'entries_controller.rb' where index, new create, edit and destroy are defined. and in routes.rb

map.resources :articles, :collection => {:admin => :get}

map.resources :users, :member => { :enable => :put } do |users|     users.resources :roles     users.resources :entries do |entry|       entry.resources :comments end     users.resources :photos, :name_prefix => 'user_', :controller => 'user_photos' end   map.resources :articles, :collection => {:admin => :get}

This is the 'entries' in config.rb. I am creating a new blog post that is entry...

I'm sorry for the late reply....I am still getting the same error.

<% if is_logged_in? %>     <li>Logged in as: <i><%= logged_in_user.username %></i></li>     <li><%= link_to 'My Profile', edit_user_path(logged_in_user) %></

    <li><%= link_to 'New Blog Post', new_entry_path(:user_id => logged_in_user) -%></li>     <li><%= link_to 'Upload Photo', user_new_photo_path(:user_id => logged_in_user) -%></li>     <li><%= link_to 'Logout', {:controller => 'account', :action => 'logout'}, :method => :post %></li>   <% else %>     <li><%= link_to 'Signup', :controller => 'users', :action => 'new' %></li>     <li><%= link_to 'Login', :controller => 'account', :action => 'login' %></li>   <% end %>

When I try to reach the page without logging I am able to see the localhost:3000/photos and index. But when I login and the above block of code gets executed I am getting the error. undefined method `new_entry_path' for #<ActionView::Base:0x50d9f6c>

Because you’re STILL calling new_entry_path when I told you it should be new_user_entry_path(@user)

either that or define map.resources :entries inside of your routes.rb outside of the user block.