2014-12-31 47 views
1

我搜索了類似的問題,但沒有找到。所有我能找到的是如何在點擊某個特定鏈接時顯示登錄表單。觸發模式,而不是重定向到/ users/sign_in路徑,Rails 4與devise

我想使用before_action :authenticate_user!此時,當我嘗試訪問需要驗證的廣告顯示操作時,它重定向到/users/sign_in路徑。相反,我想在同一個窗口中顯示模式,用戶可以在其中輸入他的信用。

到目前爲止,我剛剛爲登錄表單準備了Bootstrap模式。

<div class="modal fade" id="loginmodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
     <h4 class="modal-title" id="myModalLabel">Login</h4> 
     </div> 
     <div class="modal-body"> 



     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Aizvērt</button> 

     </div> 
    </div> 
    </div> 
</div> 

和Application_helper允許在任何視圖中顯示登錄表單。

module ApplicationHelper 
    def resource_name 
    :user 
    end 

    def resource 
    @resource ||= User.new 
    end 

    def devise_mapping 
    @devise_mapping ||= Devise.mappings[:user] 
    end 
end 

這可能嗎?

在此先感謝!

回答

1

你可以只取出的authenticate_user before_action完全,然後簡單地做佈局是這樣的/ application.html.erb(與該文件中的代碼模式太):

<% if !user_signed_in? %> 
    $('#loginmodal').modal(); 
<% end %> 

有清潔方法在視圖方面做,但這應該讓你開始。

相關問題