我的应用程序路径中出现了一种奇怪的状态。
这是我用rails构建的基本讨论论坛。我正在使用嵌套资源,如:
resources :forums do
resources :discussions
end
并生成一个视图以显示所有讨论,并要求点击任何这些讨论应该进入适当的讨论,例如“forum / 2 / discussion / 3”。然而,当我使用:
<% Discussion.find_each do |discussion| %>
<%= link_to discussion.title, forum_discussions_path(discussion.forum_id, discussion) %>
<% end %>
生成的网址/链接是“forums / 2 / discussion.3”任何想法为何有“。”而不是“/”?
答案 0 :(得分:4)
您需要使用forum_discussion
路线,而不是forum_discussions
路线
forum_discussion GET /forums/:forum_id/discussions/:id(.:format) discussions#show
总之看起来像
<% Discussion.find_each do |discussion| %>
<%= link_to discussion.title, forum_discussion_path(discussion.forum_id, discussion) %>
<% end %>
你指的是这条路线
forum_discussions GET /forums/:forum_id/discussions(.:format) discussions#index
因此discussion.id
值被用作:format
选项。