簡體   English   中英

使用Bootstrap Modal通過AJAX進行Rails 5 Devise登錄

[英]Rails 5 Devise login via AJAX using Bootstrap Modal

目前,我正在嘗試通過引導模態使用AJAX來獲取常規的Devise登錄表單。 sign_in部分在服務器端可以正常工作-用戶已登錄,但問題是由於JS未觸發,我無法就位進行前端請求處理。

session_controller.rb#創建

  def create
    resource = User.find_for_database_authentication(email: params[:user][:email])
    return invalid_login_attempt unless resource

    if resource.valid_password?(params[:user][:password])
      sign_in :user, resource
      return render :json => {:success => true}
    end

    invalid_login_attempt
  end

這部分工作正常-用戶在請求中使用200個“成功”響應登錄。

登錄表單(用於設計的默認表單)

<%= form_for(resource, url: session_path(:user), remote: true) do |f|  %>
  <%= f.email_field :email, autofocus: true, placeholder: 'Email', class: "form-control center-block" %>

  <%= f.password_field :password, placeholder: 'Password', autocomplete: "off", class: 'form-control center-block' %>

  <%= f.submit 'log in', class: 'center-block btn btn-sp btn-lg'%>
<% end %>

表單是使用隱藏的Bootstrap模態預先渲染的,單擊該模態當然是可見的。

還有不點火的JS

$(document).on('ajax:success', '#new_user', function(){
  console.log("in");
});

我嘗試ajaxSuccess更舊的.bind語法ajaxSuccess ,將JS置於應用程序級別,並在表單之后立即呈現,但是似乎無法啟動JS並且我用盡了所有想法,因此感謝您的幫助。 在Rails 5,Ruby 2.3.1,jquery-rails 4.1.1上運行。

我相信您可以將本文作為起點http://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/ ,然后進行隱藏/顯示響應時的模態窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM