Help: Restful link_to

I am trying to figure how to break up a Get into 2 seperate views.
Scenario, user goes to index page and sees list of their posts with
links to show, edit, destroy.
Cool and working well.
However in the show portion there is not enough room to display all
the information. So in the show.rhtml page I have 90% of the
information, then I want to put a link at the bottom to take them to
the rest of the post information. Not sure how to do this restful

I'm trying to creating a route for this option. I have
map.resources :positions, :collection => {:description => :show}

I believe that I need to create an action in the positions controller
called description
and then the helper url , should be description_position_path.
However I'm getting an exception:

NoMethodError in Positions#show
Showing app/views/positions/show.rhtml where line #73 raised:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.to_sym

Not sure if this is the right approach and i'm doing something wrong
or this is the wrong approach completely.

I guess it's getting closer to figuring this out but I can still use
some help. Trying to create an action in my restful controller so I
can display more "show" information.

In my routes.rb -
map.resources :positions, :collection => {:description => :get}

In the "show.rhtml" , I've added a link to see the additonal information -
<%= link_to 'Show', description_positions_path %>

In the action Description -
def description
    @position = Position.find(params[:id])
    respond_to do |format|
      format.xml {render :xml => @position.to_xml }

Leaving it like this allow me to load the first show page but when I
hit the description link - I get
Couldn't find Position without an ID

yet if I go back to my link and do <%= link_to 'Show',
description_positions_path(position) %>
Then it won't load the show.rhtml and gives me the error of undefined
variable or method.

Anyone help ?

Bump ...:slight_smile:
Don't be mad.

use :member

map.resources :positions, :member => {:description => :get}


  <%= link_to 'Show', description_positions_path(position) %>

use :member

map.resources :positions, :member => {:description => :get}


<%= link_to ‘Show’, description_positions_path(position) %>

Nope, when I try to do this I get
NameError in Positions#show
Showing app/views/positions/show.rhtml where line #73 raised:
undefined local variable or method `position' for

I don't get it , I've read the documentation 12x now so it looks like
this would work.


But this link does work:
<%= link_to "Preview Description", :controller => 'positions', :action
=> 'description', :id => %>

And gives me a url of /positions/22;description , which I think looks right ?

sorry, I believe it is singular:

<%= link_to 'Show', description_position_path(position) %>

Nope, dont be sorry. Actually the plural version renders a path but
without an id produce a "stack too deep" error, with (position) it
returns the same no method error.


Clearly, I’m still learning how this stuff works, too. I just looked at my links and I actually don’t use the named routes for this sort of example.

We’re all still learning this stuff :).
However I think that the way I crafted the link is acceptable. I did find it on one of the restful pages.