我遇到的问题似乎是Devise的身份验证_#{role}!方法是劫持我的注册尝试。
Started GET "/client/sign_up" for 127.0.0.1 at 2012-01-14 12:02:52 +0000
Processing by Client::RegistrationsController#new as HTML
Rendered /Users/robertwwhite/.rvm/gems/ruby-1.9.2-p290/gems/devise-1.5.3/app/views/devise/shared/_links.erb (1.4ms)
Rendered client/registrations/new.html.haml within layouts/application (97.6ms)
Rendered client/_navigation.html.haml (1.6ms)
Rendered shared/_flash_messages.html.haml (0.1ms)
Completed 200 OK in 126ms (Views: 116.4ms | ActiveRecord: 7.2ms)
Started POST "/client" for 127.0.0.1 at 2012-01-14 12:02:58 +0000
Processing by WishesController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"vq3wgsQeb4eoxhb3sw2Q2kd4edIoOxIfrzJ/WzJUAn0=", "client"=>{"email"=>"bacon@example.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
Completed 401 Unauthorized in 13ms
Started GET "/client/sign_in" for 127.0.0.1 at 2012-01-14 12:02:58 +0000
Processing by Client::SessionsController#new as HTML
Rendered /Users/robertwwhite/.rvm/gems/ruby-1.9.2-p290/gems/devise-1.5.3/app/views/devise/shared/_links.erb (1.0ms)
Rendered client/sessions/new.html.haml within layouts/application (16.5ms)
Rendered client/_navigation.html.haml (1.5ms)
Rendered shared/_flash_messages.html.haml (0.3ms)
Completed 200 OK in 60ms (Views: 38.6ms | ActiveRecord: 6.4ms)
我已经尝试覆盖after_signup_path_for(resource_or_scope),但它似乎被忽略了。
# app/controllers/application_controller.rb
def after_sign_up_path_for(resource_or_scope)
random_path
end
因此,用户无法首先注册该网站。有什么想法吗?
答案 0 :(得分:2)
您是否检查过以确保您的路线没有覆盖默认设计路线/方法?
由HaaR编辑,以明确有类似问题的用户:
我的devise_for方法上面的config / routes.rb中有以下内容。
match "client" => "wishes#index"
这超越了Devise的
devise_for :clients, :path => :client
通过在下面移动它,它提供了Devise优先级,并且仍然将get请求传递给适当的控制器和操作,而不会劫持POST请求。