#ruby-on-rails #ruby-on-rails-3 #error-handling
#ruby-on-rails #ruby-on-rails-3 #обработка ошибок
Вопрос:
Немного предыстории: у меня есть контроллер сообщений, который используется пользователями для создания или обновления сообщений. В форме сообщения пользователь начинает писать свое сообщение. Это сообщение может быть либо сохранено как черновик (а затем форма переключает функциональность на отправку в действие «обновить» контроллера), а затем опубликовано на странице или напрямую опубликовано на странице.
Эти формы удаленно публикуются на странице, которая добавляет таблицу с записью внутри.
В настоящее время у меня проблема: отправка формы прерывается, потому что при добавлении таблицы я получаю ошибку «ActionView::Template::Error (Маршрут не соответствует {:action =>»vote», :controller =>»posts», :post_id => 245,:positive=> true}) «. Это относится к строке кода в представлении сообщений:
<%= link_to (image_tag("icons/upvote.png", :height => "15px")), vote_post_path(:post_id => post.id, :positive => true), :remote => true %>
Я должен упомянуть, что добавление сообщения в таблицу выполняется с помощью переменной @post, которая остается доступной из контроллера.
ТЕПЕРЬ самое странное, что эта ошибка возникает ТОЛЬКО тогда, когда сообщение было отправлено непосредственно в действие «создать» и пытается добавить таблицу с сообщением. Когда сохраненный черновик отправляется в действие «обновить» и добавляется в таблицу, этого не происходит.
У кого-нибудь есть какие-либо советы относительно того, почему это так? Я могу предоставить больше кода, где это уместно.
РЕДАКТИРОВАТЬ: соответствующий раздел моего файла маршрутов:
resources :posts do
member do
get :vote
end
end
Комментарии:
1. можете ли вы опубликовать свой файл маршрутов
2. привет, я добавил соответствующий раздел моего файла маршрутов, спасибо!
Ответ №1:
проблема в том, что у вас есть действие «проголосовать» как действие участника, а не действие сбора. Переключите его на:
resources :posts do
collection do
get :vote
end
end
Ответ №2:
Попробуйте это и посмотрите, что произойдет:
resources :posts do
resources :votes
end
Комментарии:
1. привет, еще раз спасибо за ваши ответы. Это приводит к появлению ошибки для всех частичных сообщений, даже для сохраненных. Есть идеи, почему?