为什么路线要求我展示行动?

时间:2015-01-16 07:56:17

标签: ruby-on-rails routing

我将用户转发到下一个网址:

http://bookworm.az:3000/messages/alizade

在我做的路线中:

get '/messages' => 'messages#index'
get '/messages/:username' => 'messages#index'

但它要求我展示行动。但我想要显示相同的/messages页面。

例如,这里有效并且没有问我关于show动作的事情:

get ':username/manage' => 'profiles#index'

如何在没有显示操作的情况下返回同一页面?

1 个答案:

答案 0 :(得分:1)

问题是订单优先。

你已经拥有了这种模式的路线。类似于:资源:消息。

要工作,请移动以下行:

get: '/messages/:username' => 'messages#index'

到routes.rb文件的顶部。

从Rails指南中注意:

  

“Rails路由按照指定的顺序进行匹配,所以如果你   有一个资源:上面的照片得到'照片/民意调查'的节目动作   资源行的路由将在获取行之前匹配。至   解决这个问题,将get行移到资源行上方,这样就可以了   首先匹配。“

http://guides.rubyonrails.org/routing.html