2010-12-04 4 views
0

В моем приложении Rails 3 я перечисляю многие элементы на главной странице. Некоторые из них неясны, и я хотел бы ограничить свой список только популярными элементами, если пользователь не нажмет на ссылку, которая в основном «обнуляет» лимитер.Как я могу удалить данные запроса из моего Rails-url?

То, что я сейчас работает, но когда пользователь выбирает «Показать все объекты», я в конечном итоге с уродливым URL:

http://myapp.com/?limiter=0 

Есть ли способ, что я могу раздеться, что так, что пользователь не видит уродливый атрибут в конце URL-адреса?

+0

Почему вы не можете сделать симпатичный URL-адрес для «Показать все элементы»? Как выглядят ваши другие URL-адреса фильтрации? – theIV 2010-12-06 04:07:02

ответ

1

Нет, не используйте POST. POST предполагается использовать только при изменении состояния на сервере. Используйте AJAX GET, если вам действительно нужно это сделать.

Еще лучше, привыкнуть к таким параметрам GET. Это нормально. И это по какой-то причине: это позволяет заклавировать ресурс, включая любые настройки, необходимые для повторного воспроизведения запроса.

Читайте об ОТДЫХЕ. Узнать его. Переживи это. Любить это.

0

Существует несколько подходов, которые вы могли бы предпринять. Вероятно, наиболее очевидным является наличие отдельной страницы для вашего show_all. Похоже, вы пытаетесь сделать слишком много с вашей домашней страницей.

Если вы должны иметь их на главной странице, а ваша ссылка также находится на главной странице, вы можете использовать вызов ajax для загрузки ваших товаров без необходимости перенаправления на этот URL-адрес.

Наконец, я полагаю, вы могли бы попытаться сделать маршрут только для этой ситуации. Однако у меня нет никакого опыта работы с маршрутами Rails3, поэтому я не могу предложить какой-либо синтаксис.

Действительно, это пахнет проблемой дизайна приложения, а не технической проблемой. Я настоятельно рекомендую вам переосмыслить, как вы пытаетесь это сделать. Это не похоже на функцию, которая подходит для размещения на главной странице. Сделайте отдельное действие show_all.

+0

Все это механизм фильтрации. Характер данных состоит в том, что ограничивающий фактор предсказуем. Это определенно много делает, но этот лимит, который я динамически добавляю в мой AREL, похоже, не гарантирует полностью отдельный метод и представление действий. Я ценю ваш вклад, хотя Дуг, спасибо. – AKWF 2010-12-04 18:09:39