使用RubyonRails中的Desive为具有不同角色的用户创建不同的注册页面

使用RubyonRails中的Desive为具有不同角色的用户创建不同的注册页面,ruby,ruby-on-rails-3,devise,registration,Ruby,Ruby On Rails 3,Devise,Registration,我有两个不同的注册页面,一个是普通用户的,一个是募捐者的。为了创建用户,我正在使用Desive,并具有普通字段,如姓名、电子邮件和密码。 对于fundraiser,这些字段与一些额外字段是通用的,因此我在user.rb中使用这些字段 attr_accessible :campaign_fundraisers_attributes has_one :campaign_fundraisers accepts_nested_attributes_for :campaign_fundraisers, a

我有两个不同的注册页面,一个是普通用户的,一个是募捐者的。为了创建用户,我正在使用Desive,并具有普通字段,如姓名、电子邮件和密码。 对于fundraiser,这些字段与一些额外字段是通用的,因此我在user.rb中使用这些字段

attr_accessible :campaign_fundraisers_attributes
has_one :campaign_fundraisers
accepts_nested_attributes_for :campaign_fundraisers, allow_destroy: true  
这是CampaignFundraiser.rb中的内容

 belongs_to :user
这在我的create_fundraiser.html.erb中

<%= form_for(resource, :as => resource_name, :class => 'reg',:url => registration_path(resource_name)) do |f| %>
            <% resource.build_campaign_fundraisers if resource.campaign_fundraisers.nil? %>
            <%= f.fields_for :campaign_fundraisers do |u| %>
resource\u name,:class=>reg',:url=>registration\u path(resource\u name))do | f |%>
在这里,我可以在表单提交时创建用户并将数据保存在用户和筹款人的表格中,但我在这里面临的问题是,每当我遇到错误(通过设计验证),我就会被重定向到普通用户的注册页面,并在那里显示错误消息。 我想要一个解决方案,这样我就可以在同一个CreateFundraiser页面上获得错误消息,而不必在普通用户的注册页面上重定向


因此,考虑到我是Rails新手,这是我在这里的第一篇文章,请为我的问题提出任何解决方案。

您可以使用
配置范围的视图
,如本文档所述

config/initializers/designe.rb

config.scoped_views = true
然后,您可以使用基于角色的视图,如用户/会话/新建或学生/会话/新建。如果未找到任何视图,它将在designe/sessions/new中使用默认值