Do you shure that you correctly include bootstrap javascript files?
In application.js should be that line:
//= require bootstrap
문제
I am following the tutorial for devise and cancan integration for rails. https://github.com/RailsApps/rails3-bootstrap-devise-cancan I notice when a user logs in the flash notice causes the page to reload after it has been closed out. I see this in my logs: Redirected to "the root path" Completed 302
here is my routes file
App::Application.routes.draw do
resources :videos do
collection do
post "delete_selected_item"
end
end
unauthenticated do
root :to => 'external#index'
match '/features' => 'external#features'
match '/pricing' => 'external#pricing'
end
devise_scope :user do
match '/sign_up' => 'devise/registrations#new'
match '/sign_in' => 'devise/sessions#new'
end
devise_for :users
authenticated :user do
root :to => "dashboard#index"
match 'dashboard/videos' => 'videos#index'
match 'dashboard/statistics' => 'statistics#index'
match 'dashboard/analytics' => 'analytics#index'
resources :users
end
post "zencoder-callback" => "zencoder_callback#create", :as => "zencoder_callback"
end
layout code:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= content_for?(:title) ? yield(:title) : "BriteVid" %></title>
<meta name="description" content="<%= content_for?(:description) ? yield(:description) : "BriteVid" %>">
<meta name="csrf-token" content="<%= form_authenticity_token %>" />
<meta name="csrf-param" content="authenticity_token" />
<%= stylesheet_link_tag "application", :media => "all" %>
<link href="https://vjs.zencdn.net/4.0/video-js.css" rel="stylesheet">
<script src="https://vjs.zencdn.net/4.0/video.js"></script>
<%= javascript_include_tag "application" %>
<link href="<%= image_path("favicon.ico") %>" rel="shortcut icon" />
<%= csrf_meta_tags %>
<%= yield(:head) %>
</head>
<body class="<%=params[:controller].parameterize%> <%=params[:action].parameterize%>">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
<div id="nav_header">
<%= render 'dashboard/internal_header' %>
</div>
</div>
</div>
<%= render 'layouts/shared/alerts' %>
<div id="wrap">
<div id="main" role="main">
<%= render 'dashboard/dashnav' %>
<%= yield %>
<% if Rails.env.production? %> <%= render 'layouts/shared/ga' %><% end %>
</div>
</div>
<%= render 'layouts/shared/chat' %>
</body>
</html>
Flash Message Code
<div class="container">
<% if user_signed_in? %>
<% flash.each do |name, msg| %>
<div class="alert-<%= name == :notice ? "success" : "error" %> fade in">
<a class="close" data-dismiss="alert" href="">x</a>
<center><%= content_tag :div, msg, :id => "flash_#{name}" %></center>
</div>
<% end %>
<% end %>
</div>
해결책
Do you shure that you correctly include bootstrap javascript files?
In application.js should be that line:
//= require bootstrap
다른 팁
Change this
<a class="close" data-dismiss="alert" href="">x</a>
to this
<a class="close" data-dismiss="alert" href="#">x</a>
Now, the page will no longer redirect to root url.
[edit]
an empty href=""
in <a>
tag reloads the page. so, you can change it to the following:
href="#"
adds an extra entry to the browser history (which is annoying when e.g. back-buttoning).
href="javascript:;"
does not seem to have any problems (other than looking messy and meaningless)