Я новичок в rails.i. Хотите отсортировать содержимое с помощью jquery, выбрав значение из раскрывающегося списка. поэтому у меня возникла проблема с отправкой формы для конкретного действия контроллера с помощью jquery. У меня есть модель категории, которая имеет много продуктов. В моей категории показывают, что у меня есть такая форма, как рев:
<%= form_for(:category, :url => sort_category_path, method: 'GET', :class=> " form-inline pull-left") do |f| %>
Sort By :
<select id ="sort" name= "order_by">
<option>Default</option>
<option>Name</option>
<option>Pirce</option>
</select>
<%end%>
здесь, в этой форме, я не уверен, что означает: категория? Jquery для отправки формы:
$('select#sort').change(
function(e){
$(this).closest('form').trigger('submit');
});
Тогда у моего контроллера категории у меня есть действие sort_item, подобное этому:
def sort_item
@category_sort = Category.find(params[:id])
@products = @category_sort.products.order("#{params[:order_by].to_s} ASC")
end
Я не знаю, как отправить ответ на запрос. в журнале сервера указано:
Начато GET "/ru/categories/tshart/sort_item? Utf8 =% E2% 9C% 93 & order_by = Pirce" для 127.0.0.1 в 2013-11-11 12:53:49 +0600 Обработка по категориямController # sort_item как HTML Параметры: {"utf8" => "✓", "order_by" => "Pirce", "locale" => "en", "id" => "tshart"} Категория Load (0.3ms) SELECT categories
. * FROM categories
WHERE categories
. slug
= 'tshart' LIMIT 1
Перенаправлено на http://test.com/en/categories/tshart Цепочка фильтров остановлена как: find_category визуализирована или перенаправлена Завершено 301 Перемещено Постоянно в 6.7 мс (ActiveRecord: 0,3 мс)
имейте в виду, что test.com означает localhost: 3000.
Я хочу знать, что я делаю неправильно здесь, почему сортировка не работает или есть лучший способ выполнить мою задачу сортировки?
пожалуйста помогите. заранее спасибо.
Ничего себе его работа сейчас. Это была проблема маршрутизации, которую я объяснил ранее. Вопрос:
Перенаправлено на http://test.com/en/categories/tshart Цепочка фильтров остановлена как: find_category визуализирована или перенаправлена Завершено 301 Перемещено Постоянно в 6.7 мс (ActiveRecord: 0,3 мс)
Здесь мой запрос был перенаправлен на другое действие, после чего я удалил цепочку фильтров, а затем добавил рендеринг: покажите в моем классе контроллер sort_item. теперь его просто раскачивается. Все остальное остается прежним.
Надеюсь, этот вопрос может помочь другим.
Спасибо @jai за вашу помощь.
Попробуйте помещать событие change
в обработчик doc ready
:
$(function(){ // <----enclosed in document ready
$('select#sort').change(function(e){
$(this).closest('form').trigger('submit');
});
});
Это будет выглядеть, если dom был готов к привязке выполнения js-события к элементам.