最近在跟着 RoR 教程做一个网站,Rails 版本 6.0.1,在 Account 这个文字上设置了 dropdown,但是鼠标指上去以后并没有下拉显示。 如下是在 app/views/layouts/_header.html.rb 里面关于 dropdown 的代码:
<header class="navbar navbar-fixed-top navbar-inverse"> 
  <small>
    <div class="container">
      <%= link_to image_tag("*", alt: "*"), home_path, id: "logo_left" %> 
      <nav> 
        <ul class="nav navbar-nav navbar-right"> 
          <li><%= link_to "Help", help_path %></li>
          <% if logged_in? %>
            <li><%= link_to "Users", '#' %></li>
            <li class="dropdown">
              <a href="#", class="dropdown-toggle", data-toggle="dropdown">
                Account <b class="caret"></b> 
              </a>
              <ul class="dropdown-menu">
                <li><%= link_to "Profile", current_user %></li>
                <li><%= link_to "Settings", '#' %></li>
                <li class="divider"></li>
                <li> 
                  <%= link_to "Log out", logout_path, method: :delete %>
                </li>
              </ul>
            </li> 
          <% else %>
            <li><%= link_to "Log in", login_path %></li>
          <% end %>
        </ul>
      </nav> 
    </div>
  </small>
</header>
我忽然想起来,这个还要在 application.js 中引入 Bootstrap JavaScript 库,但问题是昨天我做的时候,在 app/assets 里没有/javascripts 这个文件夹,更没有 application.js 这个文件。。。于是我从另一个文件夹里拷贝改名了一个文件。。。这个会不会有影响?
问题已解决,见评论 logout 这个功能,我已经在 config/routes.rb 里面指定了
delete '/logout', to: 'sessions#destroy'
直接在链接后增加/logout 显示
No route matches [GET] "/logout"
Rails.root: /home/ubuntu/environment/***
但是他下面却显示有这个 routes

logout 相关代码: app/controllers/session_controller
class SessionsController < ApplicationController
  def new
  end
  def create
    user = User.find_by(email: params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password]) 
      log_in user
      redirect_to user
    else
      flash.now[:danger] = 'Invalid email/password combination'
      render 'new' 
    end
  end
  def destroy
    log_out
    redirect_to root_url
  end
end
app/helpers/session_helper
module SessionsHelper
  def log_in(user) 
    session[:user_id] = user.id
  end 
  def current_user
    @current_user ||= User.find_by(id: session[:user_id])
  end
  def logged_in?
    !current_user.nil?
  end
  def log_out
    session.delete(:user_id)
    @current_user = nil
  end
end
请前辈们解惑!