Когда я нажимаю ссылку «Учетная запись» на панели навигации, выпадающее меню не появляется. Что происходит, так это # добавляется в конец URL-адреса, поэтому пользователи/1 становятся пользователями/1 #.Hartl 3-е изд. Раздел 8.2.3 выпадающий список не работает
Вопрос о выпадающем меню не задан здесь: ruby on rails chapter 8, 3rd Edition. About menu dropdown. Я попробовал несколько вариантов с моим файлом application.js, как я покажу ниже, и насколько мне известно, мои session_controller.rb и мои session_helper.rb соответствуют тому, что у Hartl.
Я использую Windows и Chrome.
Я включил «показать тень пользователя DOM» в консоли разработчика в Chrome, и я вижу html для выпадающего меню. Я не вижу сообщений об ошибках.
Я думаю, что есть какая-либо ошибка контроллера или некорректность версии Bootstrap/Sass/Rails. Я получил раскрывающийся список, чтобы работать в Hartl 2nd ed Chapter 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>
Заранее спасибо.