0

次のようなサインアップ プロセスでアプリを作成しています。

  1. ユーザーは会社にサインアップ (親アカウント) し、同じフォームでユーザー アカウント (子アカウント) を作成します。
  2. ユーザーがログインし、他の従業員の子アカウントを追加します。

各企業アカウントは、すべてのユーザー アカウントを接続する「ラッパー」として機能します。

私はこれを機能させましたが、ユーザーがフォームを送信した後、アプリのルート 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
4

2 に答える 2

1

簡単な修正のためにルートを使用する代わりに、「/」パスにリダイレクトするだけです。

会社のコントローラー

def new
  @company = Company.new
  @company.users.build
end

def create
  @company = Company.new(params[:company])

  if @company.save
    redirect_to '/'
  else
    render action: "new"
  end
end
于 2012-11-26T23:03:57.890 に答える
0

routes.rb には何が定義されていますか?

おそらく、root_url を希望するものに変更するのを忘れたのでしょう。

于 2012-11-26T20:16:18.827 に答える