[Moscow.pm] HTML::FormHandler, JSON, динамические формы: делал ли кто уже?

Alex Povolotsky tarkhil на over.ru
Вт Июн 23 08:15:26 PDT 2015


HTML::FormHandlerX::Field::JSON - совсем не то. Он подстраивает вывод
под json, а у меня форма строго определенная.

Вообще, я пытаюсь связать HTML::FormHandler с DBIx::Class и
DBIx::Class::InflateColumn::Serializer, но, если я не пытаюсь явно
превратить хэш в json до передачи в модель, то

SQL::Abstract::belch(): [SQL::Abstract::__ANON__] Warning: HASH ref as
bind value in insert is not supported at
/usr/local/lib/perl5/site_perl/HTML/FormHandler/TraitFor/Model/DBIC.pm
line 85
INSERT INTO clients ( data, type) VALUES ( ?, ? ) RETURNING id:
'HASH(0x80d751528)', '1'


а если пытаюсь, то

[Tue Jun 23 18:08:34 2015] [error] Can't use string
("{"region":null,"full_name":null,"...) as a HASH ref while "strict
refs" in use at
/usr/local/lib/perl5/site_perl/HTML/FormHandler/InitResult.pm line 144.


On 23.06.2015 17:59, Dmitry L. wrote:
> А для чего вы используете HFH? Валидация и рендер форм? Или только валидация?
> 
> Если только для валидации, то никакой HFH::Field::JSON вам, наверное,
> не нужен. Достаточно Compound.
> Если кроме валидации ещё и формы рендерите, то посмотрите на
> HTML::FormHandlerX::Field::JSON .
> 
> Сам я отказался от HFH, из-за его тормознутости на Repeatable полях, и
> сделал свой вариант https://github.com/dim0xff/p5-Form-Data-Processor
> (но там только валидатор).
> А эта штука https://github.com/dim0xff/p5-Form-Data-Processor-Field-Subforms
> позволяет делать то, что вы хотите (типа, в зависимости от поля type
> подставлять валидатор под данные, которые находятся в Compound поле
> data)
> 
> 2015-06-23 17:48 GMT+03:00 Alex Povolotsky <tarkhil на over.ru>:
>> Велосипед в том, что у кого-то HTML::FormHandler::Field::JSON уже
>> написан, просто до CPAN руки не дошли.
>>
>> Аналогично - с FH-классом для динамических форм с переключателем
>>
>> Грабли - я вроде бы пока никаких не вижу) но вдруг у меня кочка зрения
>> неправильная?
>>
>> json в реляционной БД - говорят, вполне работает, и пошустрее, чем в
>> иных NoSQL.
>>
>> On 23.06.2015 17:45, Dmitry L. wrote:
>>> А в чём велосипед и какие грабли могут быть (я сейчас про сторону
>>> перла говорю, а не про хранение json в реляционной бд)?
>>>
>>> 2015-06-23 17:29 GMT+03:00 Alex Povolotsky <tarkhil на over.ru>:
>>>> Добрый вечер
>>>>
>>>> Есть задача (вполне классическая) - хранить базу клиентов. Система
>>>> пишется на Mojolicious.
>>>>
>>>> Клиенты, естественно, бывают юридическими и физическими лицами.
>>>>
>>>> Возникла идея - пользуясь возможностями JSON в новом постгресе, хранить
>>>> в базе внутренний номер клиента, тип и все остальные данные в JSON, по
>>>> которому, при необходимости, и искать.
>>>>
>>>> Очевидная следующая идея - сделать компаунд-поле типа JSON, которое
>>>> будет свертывать сериализатором все поля, при необходимости валидируя
>>>> их, и динамическую форму с использованием HTML::FormHandler и
>>>> обобщенного механизма создания "полей с JSON". Как мне кажется, штука
>>>> может получиться неплохо повторно используемая.
>>>>
>>>> Делал ли кто-нибудь что-нибудь подобное? Возможно, я изобретаю велосипед
>>>> или, наоборот, собираюсь гулять по полю самозарядных граблей?
>>>>
>>>> Alex
>>>> --
>>>> Moscow.pm mailing list
>>>> moscow-pm на pm.org | http://moscow.pm.org
>>>
>>>
>>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
> 
> 
> 


Подробная информация о списке рассылки Moscow-pm