【问题标题】:problem with devise routes (rails 3.1)设计路线问题(rails 3.1)
【发布时间】:2011-09-10 02:55:01
【问题描述】:

我来了

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

当我点击这个

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

我已经自定义了所有控制器(将添加验证码和其他内容),并将它们全部放在 users/.除了上面提到的错误之外,一切似乎都运行良好。顺便说一句,当我单击按钮时,浏览器 url 转到 /signup 并且我收到 404 错误,以及服务器中的 RoutingError。但是,如果我在同一个 url (/signup) 上的浏览​​器中点击刷新,注册页面显示没有问题,我可以继续注册!?

这是我的路线:

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。

谢谢!

【问题讨论】:

  • 出于某种原因,它正在执行 POST 而不是 GET。当您刷新浏览器时它当然会起作用,因为它会执行 GET。你可以rake routes 并粘贴输出吗?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2013-10-10
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多