0

LoginController:Impossible de stocker les cookies dans Rails

class LoginController < ApplicationController 
def new 
    cookies[:id]=rand(1000) 
    render "index" 
end 
end 

index.html.erb:

<body> 
    <center> 
    <h1> Login </h1> 
    <form action='login/auth' method='POST'> 
     Name: <input type="text" name="name" widht=20><br> 
     Password: <input type="password" name="pass" widht=20><br> 
     <input type="submit" value="submit"> 
    </form> 
    </center> 
    <br><br> 
</body> 

Mon exigence est, si la page de connexion est appelée, la page de réponse devrait envoyer un cookie. Donc, je crée un cookie avec un nombre aléatoire en nouvelle action. Mais la page "index.html" n'a pas de cookie dans le navigateur. Mais il est correctement travaillé si "nouvelle" action appelle son fichier de vue par défaut "new.html.erb". Pourquoi le cookie ne fonctionne-t-il que par défaut et pas dans un autre fichier de vue? Comment résoudre ce problème ?

+1

Est-ce que votre nouvelle action est exécutée dans les deux cas? –

+0

@FrederickCheung Ce que je voulais dire, c'est que je peux accéder aux "cookies []" seulement si l'action et les vues sont dans le même nom. Pour Ex: en soumettant le formulaire '/ login/auth' alors auth.html.erb est seulement travaillé. Si nous rendons délibérément une autre page, les cookies ne vont pas avec cette page. – mrg

Répondre

0

Pour votre information, vous avez deux fautes de frappe dans le formulaire. "width" est tapé "widht". Cela ne résoudra pas le problème, mais il supprimera une erreur supplémentaire une fois le problème résolu. En ce qui concerne le problème original, je me demande si vous pourriez avoir besoin d'une variable d'instance lorsque vous voulez passer une variable à une vue non définie par défaut (mais comme les cookies ne sont pas exprimés en tant que variables d'instance, Je ne sais pas où aller avec cela)

+0

Ceci n'est pas du tout lié au problème. –

+0

@HolgerJust pouvez-vous résoudre le problème? – mrg

+0

Mais selon la référence ils spécifient seulement comme "cookies [: id] = user.id". – mrg