Rails Gem: проблема маршрута Ajaxful_rating - PullRequest
0 голосов
/ 01 июля 2011

Я пытаюсь заставить ajaxful_rating работать с моей установкой rails.

У меня все работает, пока пользователь не нажмет на звездочку, чтобы поставить оценку.

Когда я нажимаю на звездочку, URL-адрес браузера указывает http://localhost:3000/entries/1/rate?dimension=design&show_user_rating=false&small=true&stars=4 и я получаю эту ошибку: No route matches "/entries/1/rate"

Но мои маршруты говорят:

  resources :entries do
    collection do
       ...
    end
    member do
      post 'rate'
      put 'submit'
    end

Есть что-то, что я пропускаю? Некоторые JS не включены? Все, что я включил, это jquery прямо сейчас.

Редактировать

try {
Element.update("ajaxful_rating_design_no-small_entry_1", "<ul class=\"ajaxful-rating\"><li class=\"show-value\" style=\"width: 60.0%\">Global rating average: 3.0 out of 5</li><li><a href=\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=1\" class=\"stars-1\" data-method=\"post\" data-remote=\"true\" rel=\"nofollow\" title=\"Rate 1 out of 5\">1</a></li><li><a href=\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=2\" class=\"stars-2\" data-method=\"post\" data-remote=\"true\" rel=\"nofollow\" title=\"Rate 2 out of 5\">2</a></li><li><a href=\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=3\" class=\"stars-3\" data-method=\"post\" data-remote=\"true\" rel=\"nofollow\" title=\"Rate 3 out of 5\">3</a></li><li><a href=\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=4\" class=\"stars-4\" data-method=\"post\" data-remote=\"true\" rel=\"nofollow\" title=\"Rate 4 out of 5\">4</a></li><li><a href=\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=5\" class=\"stars-5\" data-method=\"post\" data-remote=\"true\" rel=\"nofollow\" title=\"Rate 5 out of 5\">5</a></li></ul>");
new Effect.Highlight("ajaxful_rating_design_no-small_entry_1",{});
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.update(\"ajaxful_rating_design_no-small_entry_1\", \"<ul class=\\\"ajaxful-rating\\\"><li class=\\\"show-value\\\" style=\\\"width: 60.0%\\\">Global rating average: 3.0 out of 5</li><li><a href=\\\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=1\\\" class=\\\"stars-1\\\" data-method=\\\"post\\\" data-remote=\\\"true\\\" rel=\\\"nofollow\\\" title=\\\"Rate 1 out of 5\\\">1</a></li><li><a href=\\\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=2\\\" class=\\\"stars-2\\\" data-method=\\\"post\\\" data-remote=\\\"true\\\" rel=\\\"nofollow\\\" title=\\\"Rate 2 out of 5\\\">2</a></li><li><a href=\\\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=3\\\" class=\\\"stars-3\\\" data-method=\\\"post\\\" data-remote=\\\"true\\\" rel=\\\"nofollow\\\" title=\\\"Rate 3 out of 5\\\">3</a></li><li><a href=\\\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=4\\\" class=\\\"stars-4\\\" data-method=\\\"post\\\" data-remote=\\\"true\\\" rel=\\\"nofollow\\\" title=\\\"Rate 4 out of 5\\\">4</a></li><li><a href=\\\"/entries/1/rate?dimension=design&amp;show_user_rating=false&amp;small=false&amp;stars=5\\\" class=\\\"stars-5\\\" data-method=\\\"post\\\" data-remote=\\\"true\\\" rel=\\\"nofollow\\\" title=\\\"Rate 5 out of 5\\\">5</a></li></ul>\");\nnew Effect.Highlight(\"ajaxful_rating_design_no-small_entry_1\",{});'); throw e }

Это то, что говорит мой сервер, когда я нажимаю на рейтинг.

1 Ответ

0 голосов
/ 01 июля 2011

Ваше приложение отправляет запрос GET (параметры передаются в URL), но вы объявили маршрут POST.

Изменение post 'rate' на get 'rate' позволит выполнить этот запрос.

Другая возможность состоит в том, что ваше приложение генерирует GET на стороне клиента, когда оно должно генерировать POST. Мне нужно взглянуть на ваш код просмотра, чтобы диагностировать его.

...