Problem with links

Hello all…

I am on Chapter 4 of RailsSpace and I have hit a problem when it comes
to linking in the document.

To start with in an earlier chapter I created a page called site.rhtml
which used these attributes:
<%= link_to_unless_current “Home”, :action => “index” %> |
<%= link_to_unless_current “About Us”, :action => “about” %> |
<%= link_to_unless_current “Help”, :action => “help” %>

This is in the site class that was created (localhost:3000/site/index)

All these links work a treat - basic i know, but all work in progress.

NOw on Chapter 4, it’s time to create a page to register users.
I have a page now (localhost:3000/user/register)

However, for some reason, the links no longer work, despite me
updating the main file from site.rhtml to application.rhtml as the
RailsSpace book suggests.

If I am on the register page, and click ‘help’ I get the following:

No action responded to help. Actions: index and register

I understand how the links work from the site view, but when
navigating to the localhost/user/register I get a bit lost, and am
unsure how to put it right so the lnks do work…

Any ideas???

cheers

2009/8/27 RubyonRails_newbie [email protected]:

 <%= link_to_unless_current “Help”,       :action   => “help”  %>
RailsSpace book suggests.

If I am on the register page, and click ‘help’ I get the following:

No action responded to help. Actions: index and register

Assuming I understand, you have a help link on the user/register page
as you have shown above on the site/index page. Since in this link
you have specified only the action this will attempt to call that
action (help) on the current controller, ie user. Since you have only
provided index and register actions you get the message shown. Either
you must provide a help action on the user controller, or if you want
to call the help action on the site controller then specify
:controller => “site” in the link as well as the action.

Hope this helps

Colin

Do you know how that is achieved?

I was assuming the page (application.rhtml) is used as the template
for the whole site, so wasn’t expecting to have to configure the links
throughout the site.

I’m new to this, so it’s probably easy - but i’m maybe looking at it
from the wrong angle.

So - if the links currently work at: http://localhost:3000/site/about

what exactly should the pages look like if the link looks like:
http://localhost:3000/user/register

does the action need adding to the user action, or the register?

The user controller needs to have the register action. Also run
rake:routes to make sure you’ve got wired correctly.

cheers for the notes…

I found it eventually.

Updated to:

<%= link_to_unless_current “Home”, :action => “index”,
:controller => “site” %> |

this seems to work now… (phew!)

cheers

Oh, and the links you posted in the first post don’t specify a
controller so it assumes those actions all belong to the current
controller which obviously is not the case…so you need to add the
site controller to the links:

<%= link_to_unless_current “Help”, :controller => ‘site’, :action =>
‘help’ %>