设计 - 注册后重定向用户干预视图

时间:2017-10-18 08:13:12

标签: ruby-on-rails devise routes

当Devise用户注册时,我需要将他重定向到一个视图,在那里他可以选择他想成为什么样的用户,例如:

link_to 'TypeA', new_type_a_path

link_to 'TypeB', new_type_b_path

link_to 'TypeC', new_type_c_path

如何配置这条路线?我知道我可以使用:

class Users::RegistrationsController < Devise::RegistrationsController
  protected
    def after_sign_up_path_for(resource)
      signed_in_root_path(resource)
    end

但是我曾经和RoR合作过一段时间,所以不记得了 - 我应该为这个视图创建一个控制器吗?

1 个答案:

答案 0 :(得分:1)

您可以创建一个视图,按照用户可以选择的顺序放置三个链接。

after_sign_up_path_for帮助器方法允许您指定URI或路由前缀,因此您可以为该视图创建条目并在该方法中使用它,如:

# views/registrations/choices.html.erb
<%= link_to 'TypeA', new_type_a_path %>
<%= link_to 'TypeB', new_type_b_path %>
<%= link_to 'TypeC', new_type_c_path %>

# config/routes.rb
get 'choose', to: 'registrations_controller#choices', as: :choices

# registrations_controller.rb
def after_sign_up_path_for(resource)
  choices_path
end