Выберите Box onClick - Rails - PullRequest
       13

Выберите Box onClick - Rails

2 голосов
/ 23 октября 2008

У меня есть приложение Rails, которое в коде erb я использую поле выбора. Я хотел бы перезагрузить страницу с параметром сортировки. Мой контроллер уже обрабатывает это, но я не знаю, как перезагрузить страницу с выбранным значением из моего окна выбора. Вот мой код:

<% @options = {:latest => 'lastest' , :alphabetical => 'alphabetical', :pricelow => 'price-low', :pricehigh =>'pricehigh'} %>
<%= select_tag 'sort[]', options_for_select(@options), :include_blank => true,:onchange => "location.reload('location?sort='+this.value)"%>

Ответы [ 2 ]

3 голосов
/ 23 октября 2008

Рассматривали ли вы использование ajax-вызова в вашем списке? Если у вас есть метод на вашем контроллере, который возвращает только отсортированный список, основанный на параметре сортировки, то вы можете сделать:

<% @options = {:latest => 'lastest' , :alphabetical => 'alphabetical', :pricelow => 'price-low', :pricehigh =>'pricehigh'} %>
<%= select_tag 'sort[]', options_for_select(@options), :include_blank => true,:onchange => remote_function(:url => {:controller => 'your_controller', :action => 'list_sort_method'}, :with => "'sort='+this.value", :update => "div_containing_list") %>
2 голосов
/ 23 октября 2008

Если вы не хотите использовать AJAX, поместите тег form_tag вокруг вашего кода.

Взгляните на исходный код Redmine на http://redmine.rubyforge.org/svn/trunk. UsersController делает нечто подобное - есть поле со списком, который позволяет фильтр. Выбор комбо перезагрузит страницу.

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