Я новичок на этом сайте, с нетерпением жду дальнейшего участия :)
Я создаю систему заказов клиентов, используя rails3, devise, cancan и т. д.
Вкратце, у нас три модели:
- Пользователи
- Компании
- Заказы
Я изо всех сил пытаюсь понять отношения, хотя. Изначально у пользователей было много компаний, и компании принадлежали пользователю.
Однако на самом деле у нас есть два типа пользователей:
- Административный персонал здесь, который может создавать компании, обновлять информацию и т. д.
- Наши клиенты, которые могут войти в систему и видеть только свои компании и связанные с ними заказы.
Думал создать два контроллера - админ и юзеры но это кажется ненужным и не очень рельсовым. Плюс канкан может делать все, что я думаю.
Как вы думаете, что нам здесь делать? Мы думали об использовании отношения has_and_belongs_to_many, но большинство людей в Интернете, кажется, советуют избегать его.
Спасибо,
Дженни
--- редактировать ---
Спасибо всем, кто помог!
После некоторого чтения я решил использовать has many через ассоциацию.
Я создал новую модель под названием «Соглашение» и настроил свои модели следующим образом:
class User < ActiveRecord::Base
has_many :agreements
has_many :companies, :through => :agreements
end
class Company < ActiveRecord::Base
has_many :agreements
has_many :users, :through => :agreements
end
Я немного застрял и не могу найти хороший пример в Интернете.
Должен ли я создавать пользователя и компанию отдельно, а затем создавать соглашение, чтобы сопоставить их?
Еще раз всем спасибо за помощь.