Как мне указать ActiveScaffold, чтобы форма поиска всегда отображалась в виде списка?
-
21-08-2019 - |
Вопрос
В представлении списка ActiveScaffold есть форма поиска, которая загружается через ajax, когда пользователь нажимает на ссылку поиска.Я бы предпочел, чтобы форма отображалась по умолчанию, когда пользователь открывает страницу списка.
Я придумал способ запускать вызов ajax при загрузке страницы, но мне интересно, есть ли способ заставить ActiveScaffold автоматически отображать форму.Есть ли шаблон или метод, который я могу переопределить?Я просмотрел код, но там нет ничего очевидного, по крайней мере для меня.
Обновить:
ответ србоисверта вдохновил меня присмотреться получше.
Хитрость заключается в том, чтобы использовать переопределения шаблонов для рефакторинга следующего:list.rhtml, _list_header.rhtml, _search.rhtml, чтобы форма поиска частично отображалась встроенной.
Решение
Есть способ сделать так, чтобы это отображалось автоматически:
active_scaffold :модель do |config| config.list.always_show_search = true завершение
Другие советы
В настоящее время у меня нет под рукой активного проекта scaffold, но вот как бы я это выяснил.
Я бы использовал firefox с установленным firebug и взглянул на то, что вызывается при нажатии на ссылку.Затем я бы пошел посмотреть на этот javascript и на то, что он генерирует.Затем я бы искал в источнике любую часть кода или комбинацию, которая была бы достаточно уникальной для окна поиска ajax.После этого его должно быть легко разрезать и вставить внутрь без комочков.
Возможность
config.list.always_show_search = true
работает нормально, но только на конкретном контроллере.Он выдает исключение при использовании в блоке AS set_default.Кто-нибудь знает лучшее решение, чем включать его в каждый контроллер (помимо переопределения шаблона, что удобно, но усложняет обновление версии)