次のようなサインアップ プロセスでアプリを作成しています。
- ユーザーは会社にサインアップ (親アカウント) し、同じフォームでユーザー アカウント (子アカウント) を作成します。
- ユーザーがログインし、他の従業員の子アカウントを追加します。
各企業アカウントは、すべてのユーザー アカウントを接続する「ラッパー」として機能します。
私はこれを機能させましたが、ユーザーがフォームを送信した後、アプリのルート URL にリダイレクトするコードを取得できないようです。現在、それらは企業インデックスに転送されています。
ありがとう!
私の2つのモデル:
class Company < ActiveRecord::Base
attr_accessible :name, :address1, :address2, :city, :state, :zip, :users_attributes
has_many :projects, :dependent => :destroy
has_many :users, :dependent => :destroy
accepts_nested_attributes_for :users
end
class User < ActiveRecord::Base
authenticates_with_sorcery!
attr_accessible :email, :password, :password_confirmation, :first_name, :last_name, :created_on, :company_id
belongs_to :company
has_many :comments
has_many :tasks
validates_confirmation_of :password
validates_presence_of :password, :on => :create
validates_presence_of :email
validates_uniqueness_of :email
end
会社のコントローラー
def new
@company = Company.new
@company.users.build
end
def create
@company = Company.new(params[:company])
if @company.save
redirect_to root_url
else
render action: "new"
end
end
そしてフォーム
<%= simple_form_for(@company) do |f| %>
<%= f.error_notification %>
<%= f.simple_fields_for :users do |u| %>
<%= u.input :first_name %>
<%= u.input :last_name %>
<HR>
<%= u.input :email %>
<%= u.input :password %>
<%= u.input :password_confirmation %>
<% end %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :address1 %>
<%= f.input :address2 %>
<%= f.input :city %>
<%= f.input :state %>
<%= f.input :zip %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
編集:
マイルート
resources :password_reset
get "logout" => "sessions#destroy", :as => "logout"
get "login" => "sessions#new", :as => "login"
get "adduser" => "users#new", :as => "adduser"
resources :users
resources :sessions
resources :companies
get "signup" => "companies#new", :as => "signup"
resources :comments
root :to => "projects#index"
resources :tasks do
member do
get :change
end
end
resources :phases
resources :projects