我正在开发一个相当简单的应用程序。其基础是我有 2 个模型,一个用于部门(下面的 department.rb),一个用于用户(下面的 user.rb)。部门有很多用户,用户属于部门。
我正在使用 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
使用我尝试过的设计:
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