По сути, нет проблем с наличием формы, которая управляет несколькими моделями, если модели связаны друг с другом.
Для достижения этой цели можно использовать «accepts_nested_attributes_for» в вашей модели.
Для вашей ситуации вы бы сделали что-то вроде этого:
class Employee < ActiveRecord::Base
belongs_to :business
accepts_nested_attributes_for :business
end
Тогда при просмотре регистрации вы будете использовать:
<!-- validation errors etc -->
<%= form_for @employee do |f| %>
<!-- all your employee fields etc -->
<%= f.fields_for :business do |b| %>
<p>
<%= b.label :name %>
<br/>
<%= b.text_field :name %>
</p>
<!-- more fields from business -->
<% end %>
<% end %>
Если вы хотите обрабатывать регистрацию как сотрудника, так и «обычного пользователя» в одной форме, вы, вероятно, могли бы сделать что-то подобное (никогда не пробовал, но я думаю, что это должно работать!):
<!-- validation errors etc -->
<%= form_for @person do |f| %>
<!-- all your person fields etc, assuming no extras for employee -->
<% if @person.respond_to? :business %>
<%= f.fields_for :business do |b| %>
<p>
<%= b.label :name %>
<br/>
<%= b.text_field :name %>
</p>
<!-- more fields from business -->
<% end %>
<% end %>
<% end %>
P.S. Вы упомянули в своем вопросе, что волновались, что Devise не справится с вложенными атрибутами. Это точно так же, как я делаю это в одном из моих приложений.