RegistrationsControllerを書き換えるよりも良い解決策があると思います。私はまったく同じことをしました(私は会社の代わりに組織を持っています)。
ネストされたフォームをモデルおよびビューレベルで適切に設定すると、すべてが魅力のように機能します。
私のユーザーモデル:
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable and :timeoutable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
  has_many :owned_organizations, :class_name => 'Organization', :foreign_key => :owner_id
  has_many :organization_memberships
  has_many :organizations, :through => :organization_memberships
  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :username, :owned_organizations_attributes
  accepts_nested_attributes_for :owned_organizations
  ...
end
私の組織モデル:
class Organization < ActiveRecord::Base
  belongs_to :owner, :class_name => 'User'
  has_many :organization_memberships
  has_many :users, :through => :organization_memberships
  has_many :contracts
  attr_accessor :plan_name
  after_create :set_owner_membership, :set_contract
  ...
end
私の見解: 'devise / registrations / new.html.erb'
<h2>Sign up</h2>
<% resource.owned_organizations.build if resource.owned_organizations.empty? %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
  <p><%= f.label :name %><br />
    <%= f.text_field :name %></p>
  <p><%= f.label :email %><br />
    <%= f.text_field :email %></p>
  <p><%= f.label :username %><br />
    <%= f.text_field :username %></p>
  <p><%= f.label :password %><br />
    <%= f.password_field :password %></p>
  <p><%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation %></p>
  <%= f.fields_for :owned_organizations do |organization_form| %>
    <p><%= organization_form.label :name %><br />
      <%= organization_form.text_field :name %></p>
    <p><%= organization_form.label :subdomain %><br />
      <%= organization_form.text_field :subdomain %></p>
    <%= organization_form.hidden_field :plan_name, :value => params[:plan] %>
  <% end %>
  <p><%= f.submit "Sign up" %></p>
<% end %>
<%= render :partial => "devise/shared/links" %>