2016-06-03 3 views
0

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

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

Так вот мой код:

Контроллер:

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 

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

+0

первый .. перенаправлять будет сделать новый запрос на сервер ... так что вспышка не будет работать с переадресацией – Mukesh

+0

Я постоянно использую вспышки с переадресацией, и он работает отлично: o – Boltz0r

ответ

0

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

+0

Я понимаю, что вы говорите, и это имеет смысл, но можете ли вы показать мне, как это сделать? – Boltz0r

+0

ok Я дам вам код – Sunny

+0

Спасибо :) За реальный – Boltz0r

Смежные вопросы