我已经使用带有 Devise 和 Pundit的Rails App composer创建了一个新应用程序。作曲家创建了一个表单来创建新用户(devise/registrations/new.html.erb),我想制作一个部分,以便我可以将它放在其他页面上。形式是
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :role => 'form'}) do |f| %>
<h3>Sign up</h3>
<%= devise_error_messages! %>
<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email, :autofocus => true, required: true, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
</div>ate_field :date_of_birth, class: 'form-control' %>
</div>
<%= f.submit 'Sign up', :class => 'button right' %>
<% end %>
如果我把它放在一个部分并尝试在另一个页面上呈现它,我会得到
undefined local variable or method `resource
这显然是因为在我的控制器中我没有定义任何东西。问题是我找不到控制器或resource
其他控制器中应该有什么,以便我可以重新使用它。