为什么devise将/ devise /放在每个link_to锚的前面?

| 我刚刚生成了所有供设计的视图,并且我开始自定义登录屏幕。它非常有用,除了登录页面上生成的所有链接均以\“ / devise \”开头的链接之外。 为什么这样做呢?似乎是奇怪的默认行为 如何阻止将/ devise添加到每个link_to()? 我的路线文件:
devise_for :users

get \"/webpages/:page\" => \"webpages#show\", :as => :show_webpage

root :to => \"webpages#index\"
我的“耙路”
        new_user_session GET    /users/sign_in(.:format)       {:action=>\"new\", :controller=>\"devise/sessions\"}
            user_session POST   /users/sign_in(.:format)       {:action=>\"create\", :controller=>\"devise/sessions\"}
    destroy_user_session GET    /users/sign_out(.:format)      {:action=>\"destroy\", :controller=>\"devise/sessions\"}
           user_password POST   /users/password(.:format)      {:action=>\"create\", :controller=>\"devise/passwords\"}
       new_user_password GET    /users/password/new(.:format)  {:action=>\"new\", :controller=>\"devise/passwords\"}
      edit_user_password GET    /users/password/edit(.:format) {:action=>\"edit\", :controller=>\"devise/passwords\"}
                         PUT    /users/password(.:format)      {:action=>\"update\", :controller=>\"devise/passwords\"}
cancel_user_registration GET    /users/cancel(.:format)        {:action=>\"cancel\", :controller=>\"devise/registrations\"}
       user_registration POST   /users(.:format)               {:action=>\"create\", :controller=>\"devise/registrations\"}
   new_user_registration GET    /users/sign_up(.:format)       {:action=>\"new\", :controller=>\"devise/registrations\"}
  edit_user_registration GET    /users/edit(.:format)          {:action=>\"edit\", :controller=>\"devise/registrations\"}
                         PUT    /users(.:format)               {:action=>\"update\", :controller=>\"devise/registrations\"}
                         DELETE /users(.:format)               {:action=>\"destroy\", :controller=>\"devise/registrations\"}
            show_webpage GET    /webpages/:page(.:format)      {:controller=>\"webpages\", :action=>\"show\"}
                    root        /(.:format)                    {:controller=>\"webpages\", :action=>\"index\"}
当我尝试渲染来自devise控制器的页面时收到的错误消息:
ActionController::RoutingError in Devise/sessions#new

Showing /home/egervari/Projects/training/app/views/layouts/application.html.erb where line #21 raised:

No route matches {:controller=>\"devise/webpages\", :action=>\"show\", :page=>\"tour\"}

Extracted source (around line #21):

18:           </a>
19:         </li>
20:         <li>
21:           <%= link_to(\"Tour\", :controller => \"webpages\", :action => \"show\", :page => \"tour\") %>
22:         </li>
23:         <li>
24:           <%= link_to(\"Why Use Us?\", :controller => \"webpages\", :action => \"show\", :page => \"why\") %>
如您在上面看到的,它正在尝试将“ devise / \”添加到我的链接中。这根本不是我想要的。     
已邀请:
在新版本的Rails中,您可以执行以下操作:
<%= link_to \"Privacy Policy\", show_webpage_path(:page => \'privacy\') %>
您只需将_path附加到在执行“耙路”时看到的命名路由即可。将_url附加到命名路由后,将获得URL字符串BTW。这可能是有用的。 ian。     
我终于想通了。
      <li><%= link_to(\"Terms and Use\", :controller => \"/webpages\", :action => \"show\", :page => \"terms\") %> |</li>
      <li><%= link_to(\"Privacy Policy\", :controller => \"/webpages\", :action => \"show\", :page => \"privacy\") %> |</li>
基本上,我所做的是使用\“ / webpages \”而不是\“ webpages \”告诉Rails这些控制器不在\“ devise \”名称空间或父目录下。 这是适当的解决方法吗?有没有更简单的解决方案?     
所有旨在进行设计的链接/表单都应以\“ / devise \”开头。请参阅下面的devise生成的路线。为什么要更改此行为?它不起作用吗?还是您需要/想要自定义设计控制器?
          new_user_session GET    /users/login(.:format)                                           {:action=>\"new\", :controller=>\"devise/sessions\"}
              user_session POST   /users/login(.:format)                                           {:action=>\"create\", :controller=>\"devise/sessions\"}
      destroy_user_session GET    /users/sign_out(.:format)                                        {:action=>\"destroy\", :controller=>\"devise/sessions\"}
             user_password POST   /users/password(.:format)                                        {:action=>\"create\", :controller=>\"devise/passwords\"}
         new_user_password GET    /users/password/new(.:format)                                    {:action=>\"new\", :controller=>\"devise/passwords\"}
        edit_user_password GET    /users/password/edit(.:format)                                   {:action=>\"edit\", :controller=>\"devise/passwords\"}
                           PUT    /users/password(.:format)                                        {:action=>\"update\", :controller=>\"devise/passwords\"}
  cancel_user_registration GET    /users/cancel(.:format)                                          {:action=>\"cancel\", :controller=>\"devise/registrations\"}
         user_registration POST   /users(.:format)                                                 {:action=>\"create\", :controller=>\"devise/registrations\"}
     new_user_registration GET    /users/register(.:format)                                        {:action=>\"new\", :controller=>\"devise/registrations\"}
    edit_user_registration GET    /users/edit(.:format)                                            {:action=>\"edit\", :controller=>\"devise/registrations\"}
                           PUT    /users(.:format)                                                 {:action=>\"update\", :controller=>\"devise/registrations\"}
                           DELETE /users(.:format)                                                 {:action=>\"destroy\", :controller=>\"devise/registrations\"}
         user_confirmation POST   /users/confirmation(.:format)                                    {:action=>\"create\", :controller=>\"devise/confirmations\"}
     new_user_confirmation GET    /users/confirmation/new(.:format)                                {:action=>\"new\", :controller=>\"devise/confirmations\"}
                           GET    /users/confirmation(.:format)                                    {:action=>\"show\", :controller=>\"devise/confirmations\"}
    

要回复问题请先登录注册