2011-12-06 4 views
1

Просто посмотрите, что лучше всего сделать следующее.Рельсы 3 Настройка маршрутов и моделей

У меня есть две модели

Group 
    id int pk 
    name string 

Company 
    id int pk 
    name string 

Экземпляр группа может иметь ноль или несколько экземпляров компаний

Экземпляр компания может иметь ноль или несколько экземпляров групп

Validate, что компания не может принадлежат к одной и той же группе более одного раза

использовать ассоциацию has_and_belongs_to_many (без промежуточной модели)?

Использование has_many: через (настройка модели организации)?

Я хочу, чтобы настроить успокоительный вид на:

Group 
/groups  (Show All Group Names) 
/groups/1 (Show one group) 
/groups/new (Add Group) 
etc... 


Companies 
/companies/1 (show all companies) 
/companies/1 (Show company) 
/companies/new (Add Company) 
etc... 

вопрос я пытаюсь обойти, как мне установить следующие виды с моделями?

(Show all companies for a specified group) /groups/1/companies ?? 
(Add, update and remove companies for a specified group ?!) 

ответ

2

Вы хотите использовать nested routes

например написать в вашем файле routes.rb

resources :groups do 
    resources :companies 
    end 

то в вашей модели компании belongs_to группа и группа has_many компании.

не забудьте проверить guides для получения дополнительной информации о маршрутизации.

+0

Компания не обязательно относится к группе, как указано выше (экземпляр компании может иметь ноль или множество экземпляров групп). Компания может существовать без участия в группе ... –

+0

вы можете добавить ресурс: компании дважды, один раз нормальный и один раз вложенные под группами в файл маршрутов. вложенность необходима, если вам нужны такие маршруты, как «/ groups/1/companies». введите «рейк-маршруты» на консоли, чтобы получить подробную информацию о маршрутах вашего приложения. – tmaximini

+0

Ах, я вижу ... если я дублирую ресурсы, то какой лучший способ настроить модели контроллеров? спасибо –

Смежные вопросы