Фильтры / функции до и после для маршрутов Rails - PullRequest
0 голосов
/ 16 января 2011

У меня есть идея, и я не уверен, что это уже сделано. Прямо сейчас, чтобы разработчики, дружественные к поисковой системе URL, настраивали функцию to_param класса модели. Затем они вызывают функцию to_s, чтобы получить идентификатор elmenet.

Что делать, если я хочу создать URL не для модели, а для строки. Допустим, я создаю ссылку для поискового действия пост-контроллера. Единственная переменная в URL - это search_string. Так как я могу создать SEO ссылку для этой страницы поиска. Я знаю, как создавать ссылки и т. Д. И т. Д., Но моя проблема в том, что я хочу вызвать функцию для этой строки, такую ​​как to_param или что-то в этом роде, чтобы создать строку seo, также в контроллере, чтобы выполнить поиск, и мне снова нужно гуманизировать эту строку. Итак, что я хочу, это:

В каждом представлении я не хочу использовать метод URL, чтобы сделать его дружественным

В каждом контроллере я не хочу вызывать какую-либо функцию для гуманизации строки обратно, это должно быть сделано маршрутизатором

В роутере:

match 'search/:string' => 'Post#search', :as => :search, before => some_before_router_helper_function, after => some_after_router_helper_function

В этих вспомогательных функциях я буду настраивать любые параметры, какие захочу, а затем буду гуманизировать все параметры обратно

пример до / после помощников маршрутизатора:

def some_before_router_helper_function
  string = string.underscore.dasherize
end

def some_after_router_helper_function
  param[:string] = param[:string].undasherize.un_underscore
end

1 Ответ

0 голосов
/ 05 октября 2011

Как указал Хейкки: https://github.com/svenfuchs/routing-filter

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