2016-07-25 43 views
1

目前,我正在嘗試使用引導模式使用AJAX來獲取常規Devise sign_in表單。 sign_in部分在服務器端工作正常 - 用戶登錄,但問題是我無法獲得前端請求處理,因爲JS沒有觸發。Rails 5使用引導模式設計通過AJAX登錄

sessions_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 %> 

形式是預渲染,採用隱藏式引導模式,這當然得到點擊可見。

而且JS未燒製

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

我試過ajaxSuccess,老年.bind語法,把JS在應用層面和形式後立即呈現,但似乎無法得到那個JS要開火了,我的想法已經不多了,所以任何幫助都是值得讚賞的。運行於Rails 5,Ruby 2.3.1,jquery-rails 4.1.1。

+0

嗨,我有軌道5完全相同的問題和我的控制器是類似於你的。你管理了什麼問題?大多數基於rails 4的ajax auth上的tutroials,我認爲它不在rails 5中工作,例如失敗狀態:Processing by Users :: SessionsController#create as JS ---- Completed 401未授權8ms(Views:0.2ms | ActiveRecord: 1.0ms),但阿賈克斯並沒有成功和失敗 –

回答