我的建议是将模式部分设置为隐藏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
但这种方式每个链接到一个私人领域,我需要检查是否用户登录或不。有没有办法自动做到这一点?也许只是在before_filter方法中。 @marquez – 2013-10-03 14:35:45