Ruby on rails 3 轨道3设计用于和STI

Ruby on rails 3 轨道3设计用于和STI,ruby-on-rails-3,devise,sti,Ruby On Rails 3,Devise,Sti,我有以下型号: User Athlete < User Coach < User 我想为每个注册路径创建一条路线(即:注册/教练、注册/运动员)。。。我应该创建两个不同的注册控制器,还是有一种方法只使用一个注册控制器就可以做到这一点?如果您为教练和运动员创建单独的控制器就好了: devise_for :coach, :controllers => { :registrations => "coach_registrations" } devise_for :athlet

我有以下型号:

User
Athlete < User
Coach < User

我想为每个注册路径创建一条路线(即:注册/教练、注册/运动员)。。。我应该创建两个不同的注册控制器,还是有一种方法只使用一个注册控制器就可以做到这一点?

如果您为教练和运动员创建单独的控制器就好了:

devise_for :coach, :controllers => { :registrations => "coach_registrations" }
devise_for :athlete, :controllers => { :registrations => "athlete_registrations" }

class CoachRegistrationsController < Devise::RegistrationsController

end

class AthleteRegistrationsController < Devise::RegistrationsController

end
design_for:coach,:controllers=>{:registrations=>“coach_registrations”}
设计:运动员,:控制器=>{:注册=>“运动员注册”}
类CoachRegistrationController<设计::注册控制器
结束
类AthleteRegistrationController<设计::注册控制器
结束

谢谢。

如果您为教练和运动员创建单独的控制器,那就太好了:

devise_for :coach, :controllers => { :registrations => "coach_registrations" }
devise_for :athlete, :controllers => { :registrations => "athlete_registrations" }

class CoachRegistrationsController < Devise::RegistrationsController

end

class AthleteRegistrationsController < Devise::RegistrationsController

end
design_for:coach,:controllers=>{:registrations=>“coach_registrations”}
设计:运动员,:控制器=>{:注册=>“运动员注册”}
类CoachRegistrationController<设计::注册控制器
结束
类AthleteRegistrationController<设计::注册控制器
结束

谢谢。

您可以使用单个注册控制器执行以下操作:

class UsersController < Devise::RegistrationsController

  private

    def resource_class
      params[:type].present? ? params[:type].classify.constantize : super
    end

end
class UsersController
你还需要做一些其他的Tweek。这是否值得,我想这取决于这些模型实际上有多相似


希望有帮助

您可以使用单个注册控制器执行以下操作:

class UsersController < Devise::RegistrationsController

  private

    def resource_class
      params[:type].present? ? params[:type].classify.constantize : super
    end

end
class UsersController
你还需要做一些其他的Tweek。这是否值得,我想这取决于这些模型实际上有多相似

希望有帮助