使用devise omniauth登录应用程序的rails应用程序。 登录成功后,我想重新安排一次登录"带有html代码的按钮,显示@ current_user.email
$(function() {
$('#facebook-connect').click(function(e) {
e.preventDefault();
FB.login(function(response) {
if(response.authResponse) {
$.ajax({
type: 'POST',
url: '/users/auth/facebook/callback',
dataType: 'json',
data: {signed_request: response.authResponse.signedRequest},
success: function(data, textStatus, jqXHR) {
$('#loginout_button').html("<%= j render(:partial => 'account_info') %>");
},
}
}
, {scope: 'email'});
});
});
部分:
<% if user_signed_in? %>
<p class="text-left small"><%=current_user.email%></p>
<p class="text-left">
<%= link_to destroy_user_session_path, :method => :delete do %>
<%=t('auth.logout')%>
<% end%>
但当然它不会起作用,因为部分呈现在页面加载上,因此它生成登出用户的模板:
$('#loginout_button').html(" <li>\n <button type=\"button\" onclick=\"openLoginModal(); return false;\">Login<\/button>\n <\/li>\n");
如何根据设计@current_user状态生成模板。
答案 0 :(得分:1)
您需要在success
回调中制作另一个ajax请求才能加载account_info
模板。