LINUX.ORG.RU

g(rails)


0

0

Доброго времени суток.

Подскажите пожалуйста как кошерно сделать следующее конкретно в 
grails, но думаю что в rails это должно быть так же, ведь grails это 
что-то вроде rails только в groovy..

Вот например у меня есть domain-class Test

class Test {
   String str
}

И например к нему я создаю controller TestController:

class TestControlller {
   def scaffold = Test.class
}

Таким магическим способом я получаю веб гуйню с помощью которой я могу
создавать объекты класса Test, просматривать список объектов класса 
Test, удалять, редактировать и т.д.

А теперь я хочу добавить определенный view с определенными 
параметрами. Я хочу отфильтровать все объекты класса Test по критерию 
str = smth например.

Причем я хочу чтобы smth задал user.

Ну я создаю отдельный controller CustomTestController:

class CustomTestController {
   List tests
   def list = {
       def str = params['str']
       tests = Test.find(что-то там насчет str)
   }
}

Ну и все хорошо, но как мне создавать диалог для пользователя? Как-то 
так?

class CustomTestController {
    def index = {
         render(html_with_form)
         redirect(list)
    }
    ...
}

?

Но не html же там писать? Может быть это можно тоже сделать 
автомагически? То есть чтобы какой-нибудь controller имел возможность
у юзера спросить что ему надо.

Пока единственное что нашел это URL mappings, то есть если юзер
будет задавать параметры в URL, то их оттуда можно достать, но
может быть можно автомагически выгенерировать форму?

Или это еще более не так делается?

Все что надо это просто список объектов класса Test соответствующих
определленному критерию, поданному юзером. Можно в том же контроллере,
можно как угодно еще.

Без HTML. Без JSP. Без GSP. Без RHTML. Без XML. А нормально. Можно?

примечание. именно _G_rails в глаза не видел.

Непонятно, нафиг там CustomTestController. Создаешь TestController, указываешь там scaffold. оч. хорошо. Поигрался, добавил в модель то что забыл или убрал то что лишнее, остановился.
Потом сказал ./script/generate scaffold Test, он тебе заполнил контроллер основными actions. Ну и далее - изменяешь тот же list, для сортировки по параметрам, а во view добавляешь форму, где эти параметры и указываешь. Все.

>Без HTML. Без JSP. Без GSP. Без RHTML. Без XML. А нормально. Можно?

Что за глупости? MVC не устраивает, да? Тогда посмотри на component-based фреймворки. UCW, Seaside, Erlyweb, etc.

romka
()
Ответ на: комментарий от romka

> Потом сказал ./script/generate scaffold Test, он тебе заполнил 
> контроллер основными actions. Ну и далее - изменяешь тот же list, для 
> сортировки по параметрам, а во view добавляешь форму, где эти 
> параметры и указываешь. Все. 

But this is not the answer, I wan't to auto-magically generate a form!

Like

str [.......] // automagically String
blabla [.......] // automagically Integer
date [..][...][...] // automagically Date

[show]

Pressing show should result in TestController#whatever, where whatever
is something like:

class Test {
   String str
   Integer blabla
   Date date
}

class TestController {
    List tests
    ...
    def whatever = {
       // automagically String
       str = params['str'] 
       // automagically Integer
       blabla = params['blabla']
       // automagically Date
       date = params['date']
       
       tests = Test.something_which_filters_by(str,blabla,date)
    }
}

What I want is the automagicall nice form, but not my ugly hand 
written html form!

I'm sure that it is possible. Anyway GRAILS generated GUI for me, why 
can't it generate a form for user customized view?

PS Sorry for english, but it's better that translit

anonymous
()
Ответ на: комментарий от anonymous

> а во view добавляешь форму How to do that? By html, without auto-magic descibed upper? Noooo! There should be a normal way! If I wanted to touch html I wouldn't use Grails.

anonymous
()
Ответ на: комментарий от anonymous

Таки придется делать grails generate-views и изменять gsp.
Или в модель добавить Sting search_by, что некрасиво.
Можешь еще на http://grails.codehaus.org/ScaffoldTags+Plugin посмотреть.
Опять же, если не хочется писать html - Seaside, UCW и компания.

romka
()
Ответ на: комментарий от romka

Таки Searchable plugin с большего сделал то что надо (textfield с регекспоподобным внутри).

http://grails.codehaus.org/Searchable+Plugin

А вообще невозможность модицифировать view из controller или писать view не в xml-шыте неприятна.

dissident ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.