Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

period in generated url instead of forward slash

I am getting a weird state in my apps routes.

It's a basic discussion forum I am building with rails. I am using nested resources like:

 resources :forums do
  resources :discussions
 end

and generating a view to display all discussions with the requirement that clicking on any of these discussions should route to the appropriate discussion such as "forum/2/discussions/3". Yet when I use:

<% Discussion.find_each do |discussion| %>
 <%= link_to discussion.title, forum_discussions_path(discussion.forum_id, discussion) %>
<% end %>

the generated url/link is "forums/2/discussion.3" Any ideas why there is a "." instead of a "/"?

like image 652
LightBox Avatar asked Sep 19 '25 22:09

LightBox


1 Answers

You need to use the forum_discussion route, not the forum_discussions route

forum_discussion GET /forums/:forum_id/discussions/:id(.:format) discussions#show

Altogether that looks like

<% Discussion.find_each do |discussion| %>
  <%= link_to discussion.title, forum_discussion_path(discussion.forum_id, discussion) %>
<% end %>

You were pointing it to this route

forum_discussions GET /forums/:forum_id/discussions(.:format) discussions#index

so the discussion.id value was being used as the :format option.

like image 105
deefour Avatar answered Sep 22 '25 14:09

deefour