Redirect_to не работает должным образом

0

Я создаю флажок с вызовом Ajax для обновления атрибута... все работает нормально, но мои переадресации работают не так, как предполагалось (и flash [: уведомления]).

Если я использую chrome Network, я могу увидеть метод GET для нужной страницы, но не перенаправить что бы то ни было, а flash [: уведомления] не работают (я предполагаю, что это связано)

Итак, здесь мой код:

Контроллер:

def toggle
  @prato = Prato.find(params[:id])

if params[:sugestao] 
  @sugestao = params[:sugestao]
  if @sugestao == "true" and Prato.where("sugestao = ? AND categoria_pratos_id = ?", "1" , @prato.categoria_pratos_id).count <= 2
 @prato.update_attributes(:sugestao => @sugestao)

else

if @sugestao == "true" and Prato.where("sugestao = ? AND categoria_pratos_id = ?", "1" , @prato.categoria_pratos_id).count > 2
  flash[:notice] = "nao"

end
end
if @sugestao == "false"
   @prato.update_attributes(:sugestao => @sugestao)

end
end


if params[:menu]
  if @prato.update_attributes(:menu => params[:menu])


  else

  end
else 
  if params[:ativo]
    if @prato.update_attributes(:ativo => params[:ativo])

  else

  end
end
end
flash[:notice] = "fds"
redirect_to "/pratos/new?"
end

Посмотреть:

<%= check_box_tag 'Ativo', prato.id , prato.ativo,:class => "task-check2", :id=>"task-check2"  %>
<%= check_box_tag 'Sugestão', prato.id , prato.sugestao,:class => "task-check3", :id => "task-check3"  %>

Javascript

$(".task-check2").bind('change', function(){

    $.ajax({
      url: '/pratos/'+this.value+'/toggle',
      type: 'POST',
      data: {"ativo": this.checked}
    });


});


$(".task-check3").bind('change', function(){

    $.ajax({
      url: '/pratos/'+this.value+'/toggle',
      type: 'POST',
      data: {"sugestao": this.checked}
    });


});

Маршруты

resources :pratos do
  member do
    post 'toggle'
  end
end

Итак, все работает по назначению... Проблема в том, что я хочу показать сообщение, когда пользователь активирует 3 флажка, но Flash-уведомления и перенаправления не работают... Может кто-нибудь объяснить мне, почему?

  • 0
    во-первых .. редирект сделает новый запрос на сервере ... поэтому флэш не будет работать с редиректом
  • 0
    Я использую вспышки с перенаправлениями все время, и это работает просто отлично: o
Теги:
checkbox

1 ответ

0
Лучший ответ

Вы отправляете запрос js контроллеру, почему это не перенаправляет и не показывает ваше флеш-сообщение, потому что ваша страница не загружена. Для этого вам нужно изменить данные div с помощью JavaScript на успех AJAX или toggle.js.erb

  • 0
    Я вроде понимаю, что вы говорите, и это имеет смысл, но не могли бы вы показать мне, как это сделать?
  • 0
    хорошо, я дам вам код
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню