Reputation: 1449
In my rails app, styled with bootstrap3, I decided to switch Slim instead of existing ERB. While I was converting erb view files to slim, I've noticed that styles of navbar links were disappeared.
# app/views/layouts/_navbar.html.slim
nav.navbar.navbar-default
.container
.navbar-header.navbar-left
button(type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-navbar-collapse")
span.sr-only Toggle navigation
span.icon-bar
span.icon-bar
span.icon-bar
a.navbar-brand href="/" Foody
.collapse.navbar-collapse.navbar-right#bs-navbar-collapse
ul.nav.navbar-nav
- if user_signed_in?
li = link_to current_user.email, edit_user_registration_path
li = link_to 'New Recipe', new_recipe_path
li = link_to 'Sign Out', destroy_user_session_path, method: :delete, confirm: "Are you sure?"
- else
li = link_to 'Sign In', new_user_session_path
li = link_to 'Sign Up', new_user_registration_path
span.clearfix
Here is the original file I've converted from:
# app/views/layouts/_navbar.html.erb
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header navbar-left">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Foody</a>
</div>
<div class="collapse navbar-collapse navbar-right" id="bs-navbar-collapse">
<ul class="nav navbar-nav">
<% if user_signed_in? %>
<li><%= link_to current_user.email, edit_user_registration_path %></li>
<li><%= link_to 'New Recipe', new_recipe_path %></li>
<li><%= link_to 'Sign Out', destroy_user_session_path, method: :delete, confirm: "Are you sure?" %></li>
<% else %>
<li><%= link_to 'Sign In', new_user_session_path %></li>
<li><%= link_to 'Sign Up', new_user_registration_path %></li>
<% end %>
</ul>
</div>
<span class="clearfix"></span>
</div>
</nav>
Here's the result both normal & responsive modes
Here's output (sorry for complexitie)
<div class="collapse navbar-collapse navbar-right" id="bs-navbar-collapse">
<ul class="nav navbar-nav"></ul><li><a href="/users/sign_in">Sign In</a></li>
<li><a href="/users/sign_up">Sign Up</a></li><span class="clearfix"></span>
Where did I do wrong?
Upvotes: 1
Views: 1069
Reputation: 1449
Indentation failure bagan after ul.nav.navbar-nav
caused the problem. Need more practice for Slim. Special thanks for Graeme!
nav.navbar.navbar-default
div.container
div.navbar-header.navbar-left
button(type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-navbar-collapse")
span.sr-only Toggle navigation
span.icon-bar
span.icon-bar
span.icon-bar
a.navbar-brand href="/" Foody
div.collapse.navbar-collapse.navbar-right#bs-navbar-collapse
ul.nav.navbar-nav
- if user_signed_in?
li = link_to current_user.email, edit_user_registration_path
li = link_to 'New Recipe', new_recipe_path
li = link_to 'Sign Out', destroy_user_session_path, method: :delete, confirm: "Are you sure?"
- else
li = link_to 'Sign In', new_user_session_path
li = link_to 'Sign Up', new_user_registration_path
span.clearfix
Upvotes: 1