Bonjour à tous et à toutes,

je m’entraîne à utiliser rails. J'ai créé un système authentification pour l'utilisateur, évidemment il peut accéder à ces informations. Mais s'il est connecté, il peut aussi les modifier. Et c'est à partir de ce moment que je connais un problème, la redirection avec le patch fonctionne bien mais il n' y a aucune modification de son pseudo. L'utilisateur a beau rentrer son nouveau pseudo, il ne se modifie pas.

Voici mon code dans le controller sessions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class SessionsController < ApplicationController
  def new
  end
 
def show
    @page = User.find(params[:id])
 
end
 
def update
    User.find(params[:id]).update name: params[:name]
    redirect_to "/profil/#{current_user.id}"
end
 
  def create
    user = User.find_by_email(params[:email])
    # If the user exists AND the password entered is correct.
    if user && user.authenticate(params[:password])
      # Save the user id inside the browser cookie. This is how we keep the user
      # logged in when they navigate around our website.
      session[:user_id] = user.id
      redirect_to '/'
    else
    # If user's login doesn't work, send them back to the login form.
      redirect_to '/login'
    end
  end
 
  def destroy
    session[:user_id] = nil
    redirect_to '/login'
  end
end
Voici mon code dans le show:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<h1>Profil</h1>
 
<% if current_user && @page.id == current_user.id %>
<%= form_tag "/profil/#{@page.id}", method: "patch" do %>
<ul>
      <li><input type="text" name="name" value="<%= current_user.name %>" /></li>
      <li><%= image_tag current_user.avatar.url(:thumb) %></li>
  <input type="submit" value="Enregistrer mon profil" />
</ul>
<% end
else
%>
<%= @page.name %>
<br>
<%= image_tag @page.avatar.url(:thumb) %>
 
<% end %>
Voici ma routes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Rails.application.routes.draw do
  get 'sessions/new'
 
  get 'users/new'
 
  # For details on the DSL available within this file, see <a href="http://guides.rubyonrails.org/routing.html" rel="nofollow">http://guides.rubyonrails.org/routing.html</a>
 
    get '/signup' => 'users#new'
    post '/users' => 'users#create'
 
      get '/login' => 'sessions#new'
  post '/login' => 'sessions#create'
  get '/logout' => 'sessions#destroy'
 
  get '/profil/:id' => 'sessions#show'
  patch '/profil/:id' => 'sessions#update'
end
Après plein d'essais, je n'arrive toujours pas à trouver mon erreur.

Merci de m'éclairer ^^