设计路线的问题(轨道3.1)

时间:2011-09-10 02:55:01

标签: devise routes ruby-on-rails-3.1

我正在

ActionController::RoutingError (No route matches [POST] "/users/sign_up"):

点击这个

= button_to "New account", new_registration_path(resource_name), :class => 'newaccount'

我已经定制了所有控制器(将添加recaptchas和其他东西),并将它们全部放在用户/中。除了上面提到的错误之外,一切似乎都运行良好。顺便说一句,当我点击按钮时,浏览器URL进入/注册,我得到404错误,加上服务器中的RoutingError。但是,如果我在同一个网址(/注册)的浏览器中点击刷新,注册页面会显示没有问题,我可以继续注册!?

以下是我的路线:

devise_for :users, :controllers => { 
  :omniauth_callbacks => "users/omniauth_callbacks",
  :confirmations      => "users/confirmations",
  :passwords          => "users/passwords",
  :registrations      => "users/registrations",       
  :sessions           => "users/sessions"
}
devise_scope :user do
  get "signin",   :to => "users/sessions#new",      :as => :signin
  get "signout",  :to => "users/sessions#destroy",  :as => :signout
  get "signup",   :to => "users/registrations#new", :as => :signup
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end
root  :to    => 'home#index'
match 'faq'  => 'faq#index'
match 'acct'    => 'user_controls#index', :as => 'user_root'

我做错了什么?任何帮助将非常感谢。我正在运行Rails 3.1并设计1.4.5。

谢谢!

1 个答案:

答案 0 :(得分:2)

我是[POST](使用button_to“新帐户”,:注册),但我的路线只定义了获取“注册”。我刚刚将button_to更改为link_to,问题解决了。 谢谢!