设计注册功能

Kev*_*vin 2 ruby gem controller ruby-on-rails devise

如何在注册,登录等后设计设计执行功能.我尝试将这样的功能放在我的应用程序控制器中.

class ApplicationController < ActionController::Base
  private
  def after_sign_up_path_for(resource_or_scope)
    execute stuff
  end
end
Run Code Online (Sandbox Code Playgroud)

我的路线就是这样的

devise_for :users do
     get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end
Run Code Online (Sandbox Code Playgroud)

这似乎没有做任何事情.我也试过像这样制作一个会话控制器

class SessionsController < Devise::SessionsController
    functions
end
Run Code Online (Sandbox Code Playgroud)

我的路线就是这样的

devise_for :users, :controllers => {:sessions => 'devise/sessions'} do
    get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end
Run Code Online (Sandbox Code Playgroud)

这似乎没有做任何事情,是否有一些我在设计响应中缺少的东西.(我最初使用本教程设置了设计) https://github.com/fortuity/rails3-subdomain-devise/wiki/Tutorial-(Walkthrough)

Mik*_*zur 7

您可以创建自己的sessions_controller继承Devise::SessionsController并覆盖您要自定义的操作.例如,要在用户登录后执行某些操作,您可以执行以下操作:

class SessionsController < Devise::SessionsController
  def create
    super
    perform_custom_stuff
  end
end
Run Code Online (Sandbox Code Playgroud)

如果调用super不足,您可以重现Devise::SessionsController#create控制器中的当前实现.然后,您可以完全控制正在发生的事情,并可以自定义以定制您的确切需求.这可能不是最漂亮的解决方案,但可能是必要的(至少让你继续前进).