私はかなり単純なアプリに取り組んでいます。その基本は、部門用 (下の department.rb) とユーザー用 (下の user.rb) の 2 つのモデルがあることです。部門には多くのユーザーがいて、ユーザーは部門に属しています。
ユーザー認証に Devise (3.0.0.rc & Rails 4.0.0.rc1) を使用しており、ユーザー モデルに department_id を外部キーとして追加するための移行を行いました。
私は、部門のホームページにアクセスし、そのページからサインアップまたはサインインするオプションを持つユーザーにとって論理的に見えるルートを取得することに問題があります。www.example.com/departments/department:id/sign_in のようなもの
Devise が関与しなくても、routes.rb の単純なネストされたリソースでこれを達成できると思います。何かのようなもの:
resources :departments do
resources :users
end
私が試したDeviseを使用して:
resources :departments do
devise_for :users, :path => ''
end
これにより多くのルーティング エラーが発生するため、間違ったパスに向かっているに違いなく、おそらくもっと簡単な方法があると思います。Railsにかなり慣れていないので、誰かが私をより良い解決策に向けて正しい方向に向けてくれることを望んでいました.
私の user.rb モデル:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
belongs_to :department
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :department_id, presence: true
end
私の department.rb モデルは次のとおりです。
class Department < ActiveRecord::Base
has_many :users
.... All my validation rules
end