En utilisant Rails 3.0.3 en combinaison avec des gemmes comme des machines, je ne reçois aucun message flash. Maintenant, je mentionne l'invention, car elle contrôle les cookies utilisés pour m'authentifier.Rails 3 avis
Maintenant l'application Rails est un peu spéciale car elle utilise les sous-domaines . Qu'est-ce qu'ils font est de dire à l'application quelle compagnie un utilisateur navigue. Un exemple: mycompany.theapp.com/projects/3/ < - Projet 3 de la société "mycompany".
Lorsqu'un utilisateur se connecte, il est dirigé vers le site theapp.com/overview < - non sous-domaine
Tous les avis sont affichés, alors pourquoi pas sur les pages de sous-domaine?
Il s'agit donc du code utilisé sur les pages de sous-domaine. Exactement la même chose que l'on mettrait sur des pages non sous-domaine. Le code dans le contrôleur:
def update
redirect_to [@project], :notice => "Project #{@project.name} updated."
end
Les mises en page/application.html.erb
<% flash.each do |type, message| %>
<%= content_tag :div, message, :class => "flash #{type}" %>
<% end %>
J'ai également ajouté ce qui suit, en essayant de comprendre ce qui se passe:
flash.to_yaml
# Result: --- !map:ActionDispatch::Flash::FlashHash {}
Depuis apparemment utiliser flash [: avis] j'ai aussi essayé cela (parce que cela fonctionnait pour concevoir).
flash[:notice] = "Project #{@project.name} updated."
# Result: --- !map:ActionDispatch::Flash::FlashHash {}
Maintenant, faites les avis s'envoyer par les cookies ou les données de session qui ne sont pas transférés bien aux sous-domaines? Parce que le formulaire de modification du projet est sur mycompany.theapp.com/projects/3/edit/
Et il me envoie à mycompany.theapp.com/projects/3/ (sans préavis)
Il arrive sur Ubuntu 10.10 avec "rails server", passager utilisant nginx et même sur une machine Mac (mais quelqu'un d'autre testé).
Quelqu'un veut-il deviner?
Etes-vous sûr que lorsqu'un utilisateur transfère à un sous-domaine, ils sont toujours connectés dans?Ce comportement n'est pas le comportement par défaut (vous devez autoriser explicitement les cookies à traverser les sous-domaines). Peut-être que les utilisateurs ne sont pas connectés et reçoivent des vues sans flashes dans la mise en page? –