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