我的建议是将模态设置为隐藏的部分内部display: none
。
当用户未登录时,将其呈现在您的布局视图 ( application.html.erb
) 中:
<% unless user_signed_in? %>
<%= render :partial => "signin_modal" %>
<% end %>
当您希望保护链接免受未登录用户的影响时,请将其包装在如下条件中:
<% user_signed_in? ? url = your_create_comment_action_path : url = "#signin" %>
<%= link_to "Comment", url %>
最后设置一个事件以在单击具有“#signin”href 属性的链接时打开登录模式。使用 jQuery:
$(document).on("click", "a[href='#signin']", function () {
$("#SIGNIN_MODAL_ID").modal("show")
})
当然,您还需要保护您的控制器,before_filter
为您的创建评论操作添加一条规则。
before_filter :check_unsigned_user, :only => [:create]
def check_unsigned_user
unless user_signed_in?
# make what you want
end
end