为什么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 / \”添加到我的链接中。这根本不是我想要的。
没有找到相关结果
已邀请:
3 个回复
辩谷变充
您只需将_path附加到在执行“耙路”时看到的命名路由即可。将_url附加到命名路由后,将获得URL字符串BTW。这可能是有用的。 ian。
醒荒捆府绣
基本上,我所做的是使用\“ / webpages \”而不是\“ webpages \”告诉Rails这些控制器不在\“ devise \”名称空间或父目录下。 这是适当的解决方法吗?有没有更简单的解决方案?
坝胺绣敝