Forum: Ruby on Rails Restful named member routs is not decoded correctly

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
05c3f39db309047f28628a223a757bec?d=identicon&s=25 Hans Marmolin (marmolin)
on 2009-01-28 15:45
(Received via mailing list)
I define my own member action in the root file as
 map.resources  :helps
 map.resources  :helps, :member => {:display => :put}

The tables  listed by rake routs displays the pathes and helpers as
display_help                  PUT    /helps/:id/display
{:controller=>"helps", :action=>"display"}
formatted_display_help PUT    /helps/:id/display.:format
{:controller=>"helps", :action=>"display"}

I am using it in a link in the view as display_help_path
(:id=>'What_is_Disweb')
and the url in the corresponding link is
http://localhost:3000/hepls/What_is_Disweb/display

This seems all OK, but rails tell me that it cannot find an action
named What_is_Disweb, when I click on the link
I seems as the url is decoded as I had not add the member action

Anyone that has any ideas of what is going on ? Has anyone met the
same problem ?
What mistakes have I done ? What are the sources of my problem ?
I am displaying the link in another window ? Is that the source of the
problem?
I have tried to find the source of the probllem for hours, but without
any success.

Any help is very much appreciated
Ef3aa7f7e577ea8cd620462724ddf73b?d=identicon&s=25 Rob Biedenharn (Guest)
on 2009-01-28 17:37
(Received via mailing list)
On Jan 28, 2009, at 9:45 AM, Hans wrote:
> I define my own member action in the root file as
> map.resources  :helps

You don't need the first one, the second (with the :member option)
does what you need.

> (:id=>'What_is_Disweb')
> and the url in the corresponding link is
> http://localhost:3000/hepls/What_is_Disweb/display

You've stipulated that the method used for the display action must be
PUT, so if you click on a link, that's a GET and it is most likely
matching the default route:
map.connect '/:controller/:action/:id'

> problem?
> I have tried to find the source of the probllem for hours, but without
> any success.
>
> Any help is very much appreciated


Try having just:

map.resources :helps, :member => {:display => :get}

and see if your problem goes away.

I'd also recommend commenting out the default routes and add the
actual routing that you need.

-Rob

Rob Biedenharn    http://agileconsultingllc.com
Rob@AgileConsultingLLC.com
This topic is locked and can not be replied to.