Почему я получаю сообщение об ошибке «нет маршрута» при удаленном размещении или удаленном обновлении сообщения? - PullRequest
0 голосов
/ 20 октября 2011

Немного предыстории: у меня есть контроллер сообщений, который используется пользователями для создания или обновления сообщений. В форме сообщения пользователь начинает писать свое сообщение. Это сообщение может быть либо сохранено как черновик (а затем форма переключает функциональность для отправки в действие «обновить» контроллера), а затем может быть опубликовано на странице или непосредственно на странице.

Эти формы публикуют удаленно страницу, к которой добавляется таблица с постом внутри.

В настоящее время у меня проблема: при отправке формы происходит сбой, потому что при добавлении таблицы появляется ошибка "ActionView :: Template :: Error (Нет совпадений маршрута {: action =>" voice ",: 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

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

проблема в том, что у вас есть действие «голосование» как действие участника, а не действие сбора. Переключите его на:

 resources :posts do

   collection do
      get :vote 

   end
 end
0 голосов
/ 20 октября 2011

Попробуйте и посмотрите, что получится:

resources :posts do
  resources :votes 
end
...