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 "/"?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With