设计路由错误

时间:2012-04-26 13:36:57

标签: ruby-on-rails devise routes

我的应用包含已标记的物品。它使用Devise进行用户身份验证。

链接到“忘记密码?”时出现以下路由错误设计链接:

  No routes matches {:controller => "devise/belongings", :action => "with_tag", :tag_id => 1}

发出此错误的链接是

 <%= link_to "tagname", {:controller => :belongings, :action => :with_tag, :tag_id => t.id} %>

我的路由文件包含:

 resources :belongings do
   get 'with_tag', :on => :collection
   get 'remove_tag', :on => :collection
 end

 devise_scope :user do
     get "sign_in", :to => "sessions#new"
     get "sign_out", :to => "devise/session#destroy"
     get "sign_up", :to => "devise/registration#new"
 end

路由正在寻找它必须遵循的路线的设计范围。

一个简单的解决方法是将链接编码为:

   <%= link_to "tagname", {:controller => "/belongings", :action => :with_tag, :tag_id => t.id} %>

强制控制器在根目录下,而不添加设计范围。

我觉得这个解决方案很难看。

你能提出更好的建议吗?例如,route.rb上的更好配置?

THKS!

0 个答案:

没有答案