当我点击导航栏中的“帐户”链接时,下拉菜单不会出现。发生什么事情是将#添加到URL的末尾,以便用户/ 1成为用户/ 1#。Hartl 3rd ed section 8.2.3 dropdown not working
有关下拉不起作用的问题已在此处询问:ruby on rails chapter 8, 3rd Edition. About menu dropdown。我用我的application.js文件尝试了一些变体,我将在下面展示,并且据我所知,我的sessions_controller.rb和我的sessions_helper.rb与Hartl所具有的相匹配。
我正在使用Windows和Chrome。
我已经在Chrome的开发控制台中启用了“show user agent shadow DOM”,并且我看到了下拉菜单的html。我没有看到任何错误消息。
我认为有一种控制器错误或某种Bootstrap/Sass/Rails版本不兼容。我确实得到了在Hartl第2版第8章中的下拉菜单,但我不想将这些宝石推回到那么远。
我的application.js:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
我也试过
//= require jquery
//= require bootstrap
//= require jquery_ujs
//= require turbolinks
//= require_tree .
我已经试过底涂引导链轮的引导。
sessions_helper.rb:
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
end
我试着更换current_user.nil!?与current_user.nil?但那不起作用。
sessions_controller.rb
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
end
end
的Gemfile(部分)
gem 'rails', '4.2.2'
gem 'bcrypt', '3.1.7'
gem 'pg', '~> 0.18.3'
gem 'bootstrap-sass', '3.2.0.0'
gem 'sass-rails', '5.0.2'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
Custom.css.scss(第一2行)
@import "bootstrap-sprockets";
@import "bootstrap";
最后,_header.html.erb
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="container">
<%= link_to "Birder's Life List App", root_path, id: "logo" %>
<nav>
<ul class="nav navbar-nav navbar-right">
<li><%= link_to "Home", root_path %></li>
<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>
</header>
在此先感谢。