как организовать админку

22 views
Skip to first unread message

dementiev

unread,
Jan 18, 2011, 7:15:59 AM1/18/11
to ruGrails
Всем привет!
У меня есть стандартные контроллеры+views для всего
проекта(сгенеренные грэилсами).
Я хочу, чтобы они срабатывали по урлу : ../project/admin

Для этого я создал в контроллерсах папку admin, куда закинул все
дефалтовые контроллеры, создал папку во views, куда закинул все
дефалтовые views.

Захожу по урлу: localhost:8080/project/admin/manager (manager - есть
такой доменный класс+контроллер и views к нему) - получаю 404.

Насколько я понял, я не замапил url на admin..

Как мне это сделать? Класс UrlMappings, а что дальше?
Как вы организовываете админку в ваших проектах?

Заранее спасибо!

Kirill Suhanov

unread,
Jan 18, 2011, 7:27:44 AM1/18/11
to rugr...@googlegroups.com
Я бы советовал начать с азов. Учи матчасть, как говорится. То, что ты создал папку в контроллерах - это ты создал пакет. К адресу никакого отношения не имеет. Кастомные адреса задаются через UrlMappings. А как с ним работать, лучше сначала прочитать в какой-нибудь документации, а потом уже спрашивать здесь, если что-то останется непонятным. Хотя там все просто.

18 января 2011 г. 15:15 пользователь dementiev <demen...@gmail.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу ruGrails.

Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу rugr...@googlegroups.com.
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу rugrails+u...@googlegroups.com.
О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/rugrails?hl=ru.


Alexander Negoda

unread,
Jan 18, 2011, 7:43:19 AM1/18/11
to rugr...@googlegroups.com
 А как с ним работать, лучше сначала прочитать в какой-нибудь документации, а потом уже спрашивать здесь, если что-то останется непонятным. Хотя там все просто.


Эта группа как раз для этого и существует,  чтобы задавать вопросы. Часто, люди просто не знают с чего начать. Поэтому и спрашивают. Терпимее надо быть.

dementiev

unread,
Jan 18, 2011, 7:48:26 AM1/18/11
to ruGrails
как сделать я разобрался. Мне были интересны разные подходы. На
стэковерфлоу например советуют админку оформлять в отдельный app
http://stackoverflow.com/questions/1133464/best-way-to-create-an-admin-section-in-grails

Папкой я назвал, т.к. если через нетбинс создавать пакет - то он
создаётся в java sources, а не там, где лежат контроллеры.

Kirill Suhanov

unread,
Jan 18, 2011, 7:49:23 AM1/18/11
to rugr...@googlegroups.com
Это не мне надо быть терпимее, а вам - попроще:) Я совершенно спокойно посоветовал сначала попробовать разобраться в общем вопросе, а потом задавать здесь что-то поконкретнее.
Впрочем, никто не мешает вам помочь человеку разобраться с нуля. 

18 января 2011 г. 15:43 пользователь Alexander Negoda <alexande...@gmail.com> написал:

 А как с ним работать, лучше сначала прочитать в какой-нибудь документации, а потом уже спрашивать здесь, если что-то останется непонятным. Хотя там все просто.


Эта группа как раз для этого и существует,  чтобы задавать вопросы. Часто, люди просто не знают с чего начать. Поэтому и спрашивают. Терпимее надо быть.

--

Kirill Suhanov

unread,
Jan 18, 2011, 7:57:21 AM1/18/11
to rugr...@googlegroups.com
Ну тогда я не понял в чем суть вопроса.

Чтобы админка имела адрес типа "...admin/manager", достаточно прописать нужный mapping в UrlMappings, например: 
      
"/admin/manager"(controller: 'admin', action: 'index')
//заменить на свой контроллер и action

А папки внутри контроллеров - это пакеты, к адресу они отношения иметь не будут.

18 января 2011 г. 15:48 пользователь dementiev <demen...@gmail.com> написал:

--

Дмитрий Дементьев

unread,
Jan 18, 2011, 7:47:33 AM1/18/11
to rugr...@googlegroups.com

dementiev

unread,
Jan 18, 2011, 8:05:10 AM1/18/11
to ruGrails
Кирилл, спасибо(искренне:)).
Мне надо что-то вроде такого:

"/admin"(controller:"admin/manager", action:"list") - не мапится.
"/admin"(controller:"../admin/manager", action:"list") - так тоже.

Т.е. дефалтовые контроллеры находятся в пакете admin.

Kirill Suhanov

unread,
Jan 18, 2011, 8:09:30 AM1/18/11
to rugr...@googlegroups.com
Имя контроллера указывается однозначно, без указания пакета. То есть, если контроллер -  ManagerController, указывается controller: "manager" . Попробуйте так. Хотя мне никогда контроллеры по пакетам(папкам) не приходилось разбивать. Все лежали в корне.

18 января 2011 г. 16:05 пользователь dementiev <demen...@gmail.com> написал:

--

dementiev

unread,
Jan 18, 2011, 8:13:56 AM1/18/11
to ruGrails
в том то и дело, что у меня 2 класса ManagerController: один
дефалтовый чисто для админки в пакете admin, второй исправленный(там
много моего кода + изменено содержание стандартных экшнов).

Alexander Negoda

unread,
Jan 18, 2011, 8:17:36 AM1/18/11
to rugr...@googlegroups.com
Посмотри примеры вот здесь https://github.com/search?langOverride=&q=grails&repo=&start_value=1&type=Repositories
Думаю, сможешь найти на свой случай.

dementiev

unread,
Jan 18, 2011, 8:30:18 AM1/18/11
to ruGrails
вот issue, созданный точно по моему примеру: http://jira.codehaus.org/browse/GRAILS-1243
Получается, что мне придётся создать контроллеры с префиксом Admin,
далее создать доменные классы, в каждом из которых указать, что они
ссылаются на таблицу без префикса Admin(т.е. AdminManager будет
работать с таблицей Manager). Overcomplicated, но лучшего пути не
вижу.
Reply all
Reply to author
Forward
0 new messages