我搜索了类似的问题,但没有找到。我所能找到的就是在点击某个特定链接时如何显示登录表单。
我想使用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">×</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
这甚至可能吗?
提前致谢!
答案 0 :(得分:1)
您可以完全删除authenticate_user before_action,然后在layouts / application.html.erb中执行类似的操作(在该文件中也包含您的模态代码):
<% if !user_signed_in? %>
$('#loginmodal').modal();
<% end %>
在视图方面有更简洁的方法,但这应该让你开始。