设计弄乱我的路线

时间:2011-02-13 07:27:04

标签: ruby-on-rails

我最近转向设计我的身份验证例程。但是,我仍然遇到一些问题,主要是路由问题。用户登录后,我有路由:

  devise_for :users

  namespace :user do
    root :to => "town#index"
  end

登录后,我被重定向到城镇控制器。我有这条线:

<%= link_to raw("<p class='menu_head'>#{t('menu.inventory')}</p>"), :controller => "character" %>

这实际上适用于restful身份验证,但是为了设计工作,我必须将控制器指定为“/ character”,否则我得到:

No route matches {:controller=>"user/character"}

虽然这条路线不正确。如何解决这个问题?

而且,我认为这个是由设计再次造成的。当一个新用户注册时,设计会将它们重定向到town #index,因为如果他们已经登录就会发生这种情况。当发生这种情况时,由于某种原因,current_user没有被初始化。这只发生在注册后,而不是用户登录时。我很确定我在设计方面做错了。

1 个答案:

答案 0 :(得分:0)

您应该使用路由助手而不是选项来访问此控制器。在路径文件中定义路径助手并改为使用它。这样,您将始终获得正确的URL。

目前,您的应用程序正在向您发送users/town,因为这就是您告诉它的内容。登录的网址为/users/sign_in,通过传递:controller,您说“转到/users/town。如果您使用的是命名路由,则不会发生这种情况。