2010-11-11 90 views
0

我有一个到用户收件箱的命名路由,它由消息资源维护。我想确保用户只能从我的命名路径访问他们的收件箱,并删除“/ messages”作为选项。如何在Rails 3中将命名路由替换为资源路径?

resources :messages 
    match "/u/:nickname/inbox" => "messages#index", :as=>:inbox 

有没有简单的方法呢?我必须为“/ messages”创建匹配路径吗?

+0

我的新答案有效吗? – rwilliams 2010-11-15 21:23:05

+0

是的,谢谢。 – picardo 2010-11-15 23:57:56

回答

2

解决方案1:

我想创建的消息的路径,并删除resources :messages

这种方法将删除所有的正常途径的消息,你将不得不重新添加那些你想要可用。

解决方案2:

仅删除了路由指数期权,并允许所有其他标准的路线是一样的。

resources :messages, :except => :index 
match "/u/:nickname/inbox" => "messages#index", :as=>:inbox 
+0

当我删除资源行时,新模板上出现“无路由匹配{:操作=>”创建“,:控制器=>”消息“}”“错误。 – picardo 2010-11-11 21:18:30

+0

因为我们删除了资源图,所以您必须手动重新添加要用于消息的路由。 – rwilliams 2010-11-12 01:45:46

+0

我编辑我的答案与替代解决方案。 – rwilliams 2010-11-12 02:04:03