私の提案は、パーシャル セット内にモーダルを で非表示にすること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