Pourquoi mes session_helper.rb méthodes disponibles pour une utilisation dans chaque contrôleur tandis que d'autres méthodes d'assistance doivent être inclus manuellement?

J'ai une question sur l'utilisation de méthodes d'aide à l'intérieur de contrôleurs.

Peut-être que je devrais commencer par vous poser la question: si je veux créer une nouvelle méthode pour être utilisé dans un contrôleur, devrais-je être la définition de la méthode à l'aide de fichier associée avec le contrôleur de toute façon? Je pense que oui, mais vraiment, je ne suis pas sûr.

Deuxièmement, et là est mon véritable confusion. J'ai un contrôleur pour les "sessions" (app/controllers/sessions_controller.rb) associée à un fichier de helper (app/helpers/sessions_helper.rb).

Je suis en utilisant le contrôleur de sessions et des sessions helper avec la "session" méthode pour gérer la connexion, la déconnexion, les cookies, etc.

J'ai remarqué que quelque méthode que j'ai mis dans le sessions_helper.rb fichier est disponible pour une utilisation dans un de mes contrôleurs.

Cependant, j'ai défini une méthode appelée "sign_up_message" dans mon "users_helper.rb" fichier. Cette méthode n'est disponible que si j'ajoute "inclure UsersHelper" pour le contrôleur, OU si j'utilise "helpers.sign_up_message" au sein de la utilisateurs du contrôleur.

Personne ne sait pourquoi mon sessions_helper.rb méthodes semblent être disponibles dans chaque contrôleur, mais d'autres méthodes d'assistance doit être manuellement inclus?

+1
2019-09-17 22:13:09
source
2 réponses

Vous avez besoin de mettre l'élément avec la classe "nous-mega-menu sous-menu" dans l'élément avec la classe "dropdown-menu"

$(document).ready(function () {
     $('.we-mega-menu-li.dropdown-menu').mouseover(function () {
         $(this).find('div.we-mega-menu-submenu:first').css({
             "display": "block"
         });
     })
     $('.we-mega-menu-li.dropdown-menu').mouseout(function () {
         $(this).find('div.we-mega-menu-submenu:first').css({
             "display": "none"
         });
     })
 })
.we-mega-menu-submenu{
               position: relative;
               display: none;
           }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<ul class="nav-tabs">
           <li class="we-mega-menu-li dropdown-menu">
               <a href="#">Menu 1</a>
               <div class="we-mega-menu-submenu">
                   <ul class="nav-tabs">
                       <li class="we-mega-menu-li">submenu1</li>
                       <li class="we-mega-menu-li dropdown-menu">submenu2
                           <div class="we-mega-menu-submenu">
                               <ul class="nav-tabs">
                                   <li>submenu1</li>
                                   <li>submenu1</li>
                                   <li>submenu1</li>
                                   <li>submenu1</li>
                                   <li>submenu1</li>
                               </ul>
                           </div>
                       </li>
                       <li class="we-mega-menu-li">submenu3</li>
                       <li class="we-mega-menu-li">submenu4</li>
                       <li class="we-mega-menu-li">submenu5</li>
                   </ul>
               </div>
           <li class="we-mega-menu-li"><a href="#">Menu 2</a></li>
           <li class="we-mega-menu-li"><a href="#">Menu 3</a></li>
           <li class="we-mega-menu-li dropdown-menu">
               <a href="3">Menu 4</a>
               <div class="we-mega-menu-submenu">
                   <ul class="nav-tabs">
                       <li class="we-mega-menu-li">submenu1</li>
                       <li class="we-mega-menu-li dropdown-menu">submenu2
                           <div class="we-mega-menu-submenu">
                               <ul class="nav-tabs">
                                   <li>submenu1</li>
                                   <li>submenu2</li>
                                   <li>submenu3</li>
                                   <li>submenu4</li>
                                   <li>submenu5</li>
                               </ul>
                           </div>
                       </li>
                       <li class="we-mega-menu-li">submenu3</li>
                       <li class="we-mega-menu-li">submenu4</li>
                       <li class="we-mega-menu-li">submenu5</li>
                   </ul>
               </div>
           </li>
           <li class="we-mega-menu-li"><a href="#">Menu 5</a></li>
       </ul>

+0
2019-09-17 23:09:14

Vous avez oublié d'ajouter les éléments de la liste et de .dropdown-menu classe à la deuxième,troisième et cinquième menu
Voici le code mis à jour.

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<style type="text/css">

    .we-mega-menu-submenu{
        position: relative;
        display: none;
    }

</style>

<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('.we-mega-menu-li.dropdown-menu').mouseover(function(){
            $(this).find('div.we-mega-menu-submenu:first').css({
                "display":"block"
            });
        })

        $('.we-mega-menu-li.dropdown-menu').mouseout(function(){
            $(this).find('div.we-mega-menu-submenu:first').css({
                "display":"none"
            });
        })

    })
</script>

<ul class="nav-tabs">
    <li class="we-mega-menu-li dropdown-menu">
        <a href="#">Menu 1</a>
        <div class="we-mega-menu-submenu">
            <ul class="nav-tabs">
                <li class="we-mega-menu-li">submenu1</li>
                <li class="we-mega-menu-li dropdown-menu">submenu2</li>
                    <div class="we-mega-menu-submenu">
                        <ul class="nav-tabs">
                            <li>submenu1</li>
                            <li>submenu1</li>
                            <li>submenu1</li>
                            <li>submenu1</li>
                            <li>submenu1</li>
                        </ul>
                    </div>
                <li class="we-mega-menu-li">submenu3</li>
                <li class="we-mega-menu-li">submenu4</li>
                <li class="we-mega-menu-li">submenu5</li>
            </ul>
        </div>
    <li class="we-mega-menu-li dropdown-menu"><a href="#">Menu 2</a>
      <div class="we-mega-menu-submenu">
          <ul class="nav-tabs">
              <li class="we-mega-menu-li">submenu1</li>
              <li class="we-mega-menu-li dropdown-menu">submenu2</li>
                  <div class="we-mega-menu-submenu">
                      <ul class="nav-tabs">
                          <li>submenu1</li>
                          <li>submenu2</li>
                          <li>submenu3</li>
                          <li>submenu4</li>
                          <li>submenu5</li>
                      </ul>
                  </div>
              <li class="we-mega-menu-li">submenu3</li>
              <li class="we-mega-menu-li">submenu4</li>
              <li class="we-mega-menu-li">submenu5</li>
          </ul>
      </div>
    </li>
    <li class="we-mega-menu-li dropdown-menu"><a href="#">Menu 3</a>
      <div class="we-mega-menu-submenu">
          <ul class="nav-tabs">
              <li class="we-mega-menu-li">submenu1</li>
              <li class="we-mega-menu-li dropdown-menu">submenu2</li>
                  <div class="we-mega-menu-submenu">
                      <ul class="nav-tabs">
                          <li>submenu1</li>
                          <li>submenu2</li>
                          <li>submenu3</li>
                          <li>submenu4</li>
                          <li>submenu5</li>
                      </ul>
                  </div>
              <li class="we-mega-menu-li">submenu3</li>
              <li class="we-mega-menu-li">submenu4</li>
              <li class="we-mega-menu-li">submenu5</li>
          </ul>
      </div>
    </li>
    <li class="we-mega-menu-li dropdown-menu">
    <a href="3">Menu 4</a>
        <div class="we-mega-menu-submenu">
            <ul class="nav-tabs">
                <li class="we-mega-menu-li">submenu1</li>
                <li class="we-mega-menu-li dropdown-menu">submenu2</li>
                    <div class="we-mega-menu-submenu">
                        <ul class="nav-tabs">
                            <li>submenu1</li>
                            <li>submenu2</li>
                            <li>submenu3</li>
                            <li>submenu4</li>
                            <li>submenu5</li>
                        </ul>
                    </div>
                <li class="we-mega-menu-li">submenu3</li>
                <li class="we-mega-menu-li">submenu4</li>
                <li class="we-mega-menu-li">submenu5</li>
            </ul>
        </div>
    </li>
    <li class="we-mega-menu-li dropdown-menu"><a href="#">Menu 5</a>
      <div class="we-mega-menu-submenu">
          <ul class="nav-tabs">
              <li class="we-mega-menu-li">submenu1</li>
              <li class="we-mega-menu-li dropdown-menu">submenu2</li>
                  <div class="we-mega-menu-submenu">
                      <ul class="nav-tabs">
                          <li>submenu1</li>
                          <li>submenu2</li>
                          <li>submenu3</li>
                          <li>submenu4</li>
                          <li>submenu5</li>
                      </ul>
                  </div>
              <li class="we-mega-menu-li">submenu3</li>
              <li class="we-mega-menu-li">submenu4</li>
              <li class="we-mega-menu-li">submenu5</li>
          </ul>
      </div>
    </li>
</ul>

</body>
</html>
+0
2019-09-17 23:09:14

Voir d'autres questions sur les étiquettes