【问题标题】:Devise override redirect after form submit表单提交后设计覆盖重定向
【发布时间】:2011-01-29 19:39:21
【问题描述】:

如何配置我的 Rails 应用程序,以便在提交创建新用户的表单后(通过设计),我重定向到我自己想要的页面?

谢谢

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 devise


【解决方案1】:

创建用户表单提交后,用户被创建并登录,因此您被重定向到的页面实际上是登录后页面。如果您只想在创建用户时更改此页面,您可以在自定义注册控制器中设置 session["#{resource_name}_return_to"],如下所示:

class Users::RegistrationsController < Devise::RegistrationsController
  def create
    session["#{resource_name}_return_to"] = some_custom_path
    super
  end
end 

您还可以在 routes.rb 中为您的用户对象创建根路由,这将在所有用户登录时重定向:

match "user_root" => "users#home"

最后,您可以在 application_controller 中定义 after_sign_in_path_for(resource_or_scope) 方法,这将允许您有条件地重定向用户:

def after_sign_in_path_for(resource_or_scope)
  if resource_or_scope.is_a?(User)
    some_custom_path    
  else
    super
  end
end

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2016-12-30
    相关资源
    最近更新 更多