Я новичок в этом сайте, с нетерпением жду возможности принять более активное участие:)
Я создаю систему заказов клиентов, используя rails3, devise, cancan и т. Д.
Короче говоря, мы тримодели:
- Пользователи
- Компании
- Заказы
Хотя я изо всех сил пытаюсь понять отношения.Изначально у пользователей было много компаний, и компании принадлежали пользователю.
Однако у нас фактически есть два вида пользователей:
- Административный персонал, который может создавать компании, обновлять деталии т. д.
- Наши клиенты, которые могут войти и увидеть только свои компании и связанные с ними заказы.
Я думал о создании двух контроллеров - администратора и пользователей, но это кажется ненужным и не очень рельсовым.Плюс канкан может делать все, что я думаю.
Как вы думаете, что нам следует здесь делать?Мы думали об использовании отношения has_and_belongs_to_many, но большинство людей в Интернете, кажется, говорят, что избегать этого.
Спасибо,
Дженни
--- edit ---
Спасибо всем, кто помог!
После некоторого прочтения я решил использовать ассоциацию «есть много».
Я создал новую модель под названием соглашение и настроил свои модели следующим образом:
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
Я немного застрялхотя и не могу найти хороший пример в Интернете.
Должен ли я создавать пользователя и компанию отдельно, а затем создавать соглашение, чтобы соответствовать двум?
Опять же, спасибо за помощь Всем.