2013-05-17 2 views
0

나는 devise 및 cancan 통합을위한 지침서를 따르고 있습니다. https://github.com/RailsApps/rails3-bootstrap-devise-cancan 사용자가 플래시 알림에 로그인하면 페이지가 닫힌 후 다시로드됩니다. 나는 나의 로그에서 볼 : 여기닫기 플래시 알림 원인 페이지 리디렉션

내 경로가 파일 302 완료 "루트 경로"에 옴

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 

레이아웃 코드 :

<!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> 

플래시 메시지 코드

<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> 
+0

보기 코드가 플래시 메시지가 리디렉션을 일으키는 이유를 작동하는 데 필요한 될 수 있습니다 application.js에서

은 선해야합니다. – Matt

+0

시도해보십시오 : yoones

답변

0

당신이 제대로 부트 스트랩 자바 스크립트 파일을 포함하는 것이 슈어 마십시오을하지 않는 것?

//= require bootstrap 
+0

두 분 모두 내 질문에 답해 주셔서 감사합니다. @ 패러 노이드 당신이 올바른 방향으로 나를 지적했다. bootstrap.js.coffee라는 파일을 기본 부트 스트랩으로 덮어 썼습니다. 파일을 삭제하고 모든 것이 작동합니다. – kilomo

0

변경하십시오.

<a class="close" data-dismiss="alert" href="#">x</a> 

-

<a class="close" data-dismiss="alert" href="">x</a> 

이제 페이지가 더 이상 루트 URL로 리디렉션되지 않습니다.

[편집] 태그가 페이지를 다시로드 빈 href=""<a>

. 그래서, 다음으로 변경할 수 있습니다 :

  1. href="#"는 브라우저 기록에 별도의 항목을 추가 (짜증나는 경우, 예를 들어 백 buttoning).

  2. href="javascript:;" (지저분하고 의미 찾고 이외의) 문제

+0

대신 @jnbankston 변종을 사용해보십시오. 일반적으로 플래시 알림을 닫았습니다. <0126>

+0

비어있는'href' 속성이 왜 필요한 것이 아닌지 설명하기 위해 내 글을 업데이트했습니다. – CuriousMind