Bonjour,
Dans mon application.html.erb, j'inclu un partial (Menu du site) :
<!DOCTYPE html>
<html>
<head>
<title>Mon app</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= render 'layouts/header' %> # Menu du site
<%= yield %>
<%= javascript_include_tag 'application', 'data-turbolinks-eval':'false', 'data-turbolinks-track': 'reload' %>
</body>
</html>
Et dans mon partial je fais une condition : header.html.erb :
<% unless current_page?('/connexion') || current_page?('/inscription') %>
<a href="<%= root_path %>">Accueil</a>
<a href="<%= new_session_path %>">Connexion</a>
<a href="<%= new_users_path %>">Inscription</a>
<% end %>
Je trouve qu'il pourrai y avoir une autre façon de faire plus propre, pour empêcher le partial de s'afficher selon certaines pages de mon site.
Quelqu'un aurait-il une idée ?
Merci
Comme le dit @takeback, le mieux ce serait que tu mettes ta condition sur le render : <%= render 'layouts/header' unless current_page?('/connexion') || current_page?('/inscription') %>
et tu pourrais modifier le slug et le remplacer par le nom de la route (dans ton fichier de routes, par exemple ici le slug /hello a le nom :hello get '/hello', to: 'application#hello', as: :hello
) et faire ta condition sur le nom plutôt que sur le slug : check ça https://apidock.com/rails/ActionView/Helpers/UrlHelper/current_page%3F, ça te permettra d'éviter de changer ta condition si tu changes le slug.