I have a hard time understanding path_prefix in restful routes.
My urls should always start with the id of a club since my site is
club oriented eg: www.clubsite.com/zero/ where zero is the club
I have
map.resources :clubs
map.resources :users, :path_prefix => '/:club'
map.resources :posts, :path_prefix => '/:club'
I don't see how rails knows what :club is. Do I have to set it
somewhere (in my application controller)?
Concrete I have the following problem:
But when I use <%= link_to "new post", post_url(1) %>
I get an error post_url failed to generate from
{:club=>"1", :controller=>"posts", :action=>"show"}, expected:
{:controller=>"posts", :action=>"show"}, diff: {:club=>"1"}
It seems that :club = 1 when it actualy should be a string (zero)
Many thanks in advance
Stijn
In your example, it looks like you might be using the wrong helper.
Your link_to label is "new post" but the route helper you are using is
for PostsController#show. What you probably want is this: <%= link_to
"new post", new_post_path(1) %>. (The show helper [post_path] will
require two arguments: the parent Club and the existing Post to be
shown. It would be called as post_path(:club => X, :id => Y) or just
post_path(X, Y).)
Note that this just covers how the Club ID gets into the URL and
params[:club]. If you want to work with the actual club from within
any of the actions in UsersController or PostsController, those
actions will need to use params[:club] to look up the actual Club
instance, e.g., Club.find(params[:club]).
-JP
On Jun 10, 6:47 am, Tarscher <tarsc...@gmail.com> wrote:
> Hi all,
>
> I have a hard time understanding path_prefix in restful routes.
>
> My urls should always start with the id of a club since my site is
> club oriented eg:www.clubsite.com/zero/where zero is the club