2016-11-05 1 views
0

vueSi vous cliquez sur link_to un message flash sur une nouvelle page?

<% if current_user.challenges.badges.count > 0 %> 
    <%= link_to new_duel_path(:challenge_daddy => @user.id), class: "btn", style: "padding-top: 10px; padding-bottom: 10px; margin-top: 15px; color: white;" do %> 
    <span class='glyphicon glyphicon-tower'></span> Duel 
    <% end %> 
<% else %> 
    # user will be sent to performance page 
    <%= link_to performance_path, class: "btn", style: "padding-top: 10px; padding-bottom: 10px; margin-top: 15px; color: white;" do %> 
    <span class='glyphicon glyphicon-tower'></span> Duel 
    <% end %> 
<% end %> 

contrôleur

def performance 
    @user = current_user 
    # only if the user is brought to performance via the above link_to should this be flashed 
    flash[:alert] = "YOU'RE NOT AUTHORIZED TO INITIATE A DUEL UNTIL YOU BECOME A NINJA, BUT YOU CAN BE INVITED TO A DUEL" 
end 

J'ai essayé d'envoyer le flash directement dans link_to, mais rien ne se produisit: link_to performance_path(:alert => "Flash message") aussi essayé (:error => "Flash message")

+1

Je pense que ce que vous essayez de faire conventionnellement mal et doit être fait à l'aide des formulaires à la place. –

+0

Avez-vous ajouté un message flash partiel à votre page? – user100693

+0

@AkashAggarwal Peut-être que je devrais rediriger vers une page appelée 'performance_with_flash', mais je pense que cela pourrait être beaucoup de code dupliqué juste pour ajouter un message flash. –

Répondre

1

vue

<%= link_to performance_path(alert: true), class: "btn", style: "padding-top: 10px; padding-bottom: 10px; margin-top: 15px; color: white;" do %> 
    <span class='glyphicon glyphicon-tower'></span> Duel 
<% end %> 

contrôleur

def performance 
    @user = current_user 
    flash[:alert] = "YOU'RE NOT AUTHORIZED TO INITIATE A DUEL UNTIL YOU BECOME A NINJA, BUT YOU CAN BE INVITED TO A DUEL" if params[:alert].present? 
end 

vue de la performance

<% if flash[:alert] %> 
    <%= flash[:alert] %> 
<% end %>