我正在为两个模型使用Devise,在运行rails g devise:views
之后,在views / devise /中创建了一些视图 - 其中一些很好,可以在这两个模型之间共享,但我必须添加一些字段(取决于模型)到注册一个。
例如,对于devise/registrations/new.html.erb
我有这个:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :first_name %><br />
<%= f.text_field :first_name %></p>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render :partial => "devise/shared/links" %>
这没关系,但我如何才能使其具体模型?我如何告诉设计去看看/views/my_model/new.html.erb?基本上我想为每个使用Devise的模型提供两个单独的注册/新模板,因为每个模型都有不同的字段。
当我rails g devise:views mymodel
时,它仍会呈现views/devise
而不是views/mymodel/devise
的模板。
答案 0 :(得分:1)
我会为您的每个模型创建一个包含您认为必要的任何字段的表单。在您使用的特定模型(用户或管理员)之后命名它们。然后在devise / registrations / new.html.erb中根据resource.class.name呈现适当的部分。