проблема со структурой проекта MVC - PullRequest
0 голосов
/ 18 августа 2010

в моем проекте у меня есть около 20 HTML форм с большим количеством различных <input>.Эти <input> уникальны в каждой форме, и они не повторяются между ними.Для каждой формы есть скрипт, который получает данные из формы, генерирует определенный файл и передает его в браузер.и это все.нет баз данных, администраторов, логинов / паролей и прочего обычного веб-приложения.

, например, в php структура проекта может выглядеть примерно так:

forms /

-------> form1 /

---------------> index.html

---------------> script /

-----------------------> index.php

------> form2 /

---------------> index.html

---------------> script /

-----------------------> index.php

и так далее.Это довольно ясно, и это делает симпатичные URL как:

www.website.com / forms / form1

, но в Ruby-on-Rails есть шаблон MVC.И я понятия не имею, как организовать структуру с таким проектом.Как сделать это правильно?В конце концов, я не должен делать 20 разных контроллеров, верно?

Ответы [ 2 ]

0 голосов
/ 18 августа 2010

Поскольку для форм нет базы данных, я бы создал один FormsController с 20 методами (form1, form2, form3, ...).

Ваши URL-адреса выглядели бы почти одинаково \forms\form1, \forms\form2 ...

Даже если бы вы использовали 20 контроллеров, в ruby ​​есть много способов удалить дублирующийся код.Таким образом, даже в обычном MVC у меня были приложения со 140 моделями, и так же, как и многие контроллеры, у большинства этих контроллеров была только одна строка, и представления были полностью общими.

Просто потому, что определенное решение казалось простым вPHP, это не значит, что лучшие решения не существуют.Как например MVC.Может показаться, что это вызывает больше кода, больше файлов, больше работы, но структура не без оснований, она четко разделяет проблемы, и каждый файл сам по себе становится более ясным и понятным.

0 голосов
/ 18 августа 2010

Да, вы делаете 20 контроллеров. Во многом так же, как у вас есть 20 файлов script / index.php в вашей структуре PHP. Структура рельсов будет выглядеть примерно так.

app/
    controllers/
        form1s_controller
        form2s_controller
        .....
        formns_controller
    view/
        form1/
            new.html.erb
        form2/
            new.html.erb
        ......
        formn/
            new.html.erb
        layouts/
            application.html.erb

Если у контроллеров есть метод для каждого действия, которое вы хотите выполнить, например, новый, редактировать и т. д.

Файл layouts/application.html.erb будет содержать всю разметку, которая одинакова для всех ваших страниц.

Наконец, не пытайтесь бороться со структурой. Это сделано для того, чтобы включить минимальный код из-за соглашения, если вы попытаетесь создать свои собственные структуры, вы создадите мир боли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...