【发布时间】:2012-01-18 11:02:27
【问题描述】:
我的设计有问题。每次我尝试调用应该由设计处理的 Url(例如 http://localhost:3000/users/sign_up)时,都会出现以下错误:
No route matches {:controller=>"devise/static", :action=>"about"}
希望有人可以帮助我!
routes.rb
devise_for :users
get "pages/contact"
get "pages/imprint"
get "pages/about"
root :to => "pages#about"
我做了什么:
在 gemfile 中添加了gem 'devise'
bundle install
rails generate devise:install
rails generate devise User
rake db:migrate
rake 路线
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 DELETE /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"}
pages_contact GET /pages/contact(.:format) {:controller=>"pages", :action=>"contact"}
pages_imprint GET /pages/imprint(.:format) {:controller=>"pages", :action=>"imprint"}
pages_about GET /pages/about(.:format) {:controller=>"pages", :action=>"about"}
root / {:controller=>"pages", :action=>"about"}
Rails 版本: 导轨 3.1.3
PagesController
class PagesController < ApplicationController
def contact
end
def imprint
end
def about
end
end
【问题讨论】:
-
我已按照您在 Rails 3.1.3 上的步骤操作,但无法重现您遇到的问题。这似乎是设计干扰您的非设计路线的问题,但我不明白为什么会发生这种情况。您的 PagesController 中是否有任何奇怪的事情发生?
-
我添加了页面控制器的内容(这正是 rails g 命令生成的内容)。我的 Rails 版本也是 3.1.3...
-
奇怪,我刚刚发现问题可能是。在 application.html.erb... 我有三个指向 PagesController 中页面的链接... :pages, :action => :imprint %> 如果我删除它们错误消失了。但为什么呢?
-
This guy 似乎也有同样的问题,解决方法就是改用命名路由。然而,看看 Devise 究竟发生了什么导致这种行为会很有趣。
-
我有类似的问题stackoverflow.com/questions/14226107/…,但还没有找到解决方案
标签: ruby-on-rails ruby-on-rails-3.1 devise