如何重定向以打开模态

时间:2013-04-25 20:00:34

标签: ruby-on-rails modal-dialog twitter-bootstrap-rails

假设我有一个评论部分,当用户输入评论时,如果用户未登录,我想在模式框中显示登录表单。用户登录后,应继续发布评论。我尝试了以下操作,但它重定向了注册页面。有什么建议?谢谢!

CommentsController

def创建    if!user_signed_in?
      redirect_to(new_user_session_path,:remote => true,:data => {:target =>“#signin”,:toggle =>“modal”})     其他       ###继续创建    端

1 个答案:

答案 0 :(得分:0)

我的建议是将模态设置为隐藏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