Я работаю над довольно простым приложением. Основой является то, что у меня есть 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 Я думаю, что смог бы достичь этого с помощью простого вложенного ресурса на моих маршрутах. Rb. Что-то вроде:
resources :departments do
resources :users
end
Использование Завещание Я попытался:
resources :departments do
devise_for :users, :path => ''
end
Это создает много ошибок маршрутизации, так что я думаю, что я должен быть заголовок вниз неверный путь, и что, вероятно, является более простой способ. Будучи довольно новым для рельсов, я надеялся, что кто-то может указать мне в правильном направлении на лучшее решение.
Моя 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