3

设计有问题。我有一个包含令牌的注册 url...类似于:localhost:3000/users/sign_up/df293b00ae137b8b6436d45e622304aedc549072

当注册失败(密码不匹配或其他)时,应用程序重定向到 localhost:3000/users 并显示来自模型的正确闪存消息。

但是我需要应用程序使用令牌重定向回 url。所以我在控制器中抛出了 redirect_to :back ,这让我回来了,但闪存消息没有显示出来。

如何使页面重定向回来(保留确切的 url)并仍然显示 flash 消息。

这是来自设计控制器的代码:

 def new
    resource = build_resource({})
    respond_with resource
  end

  # POST /resource
  def create
    build_resource

    if resource.save
      if resource.active_for_authentication?
        set_flash_message :notice, :signed_up if is_navigational_format?
        sign_up(resource_name, resource)
        respond_with resource, :location => after_sign_up_path_for(resource)
      else
        set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
        expire_session_data_after_sign_in!
        respond_with resource, :location => after_inactive_sign_up_path_for(resource)
      end
    else
      clean_up_passwords resource
      respond_with resource
    end
  end

任何帮助都会很棒!

4

1 回答 1

-1

您想要的是为设计编写一个自定义的 FailureApp,如果用户不可验证(验证失败),它用于将用户重定向到给定页面。

您可以在设计 wiki 中查看有关谁编写和使用失败应用程序的更多信息:

https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated

于 2013-01-05T13:58:37.603 回答