2017-03-17 45 views
6

Dla mojej aplikacji próbuję skonfigurować wrapper Turbolinks Mobile>. Występuje problem, w którym nie mogę zalogować się do aplikacji (i myślę, że muszę zmodyfikować program Devise, aby przełączyć na XHR, aby działał na telefonie komórkowym). Moja forma sign_in używa Devise, ale nie widzę kodu.Tworzenie wrapperów do pracy z Ruby on Rails Devise

Using: ruby "2.4.0" gem "rails", "5.0.2" gem "turbolinks", "~> 5.0.0.beta" gem "devise", ">= 4.2.0" gem "devise-async", git: "https://github.com/mhfs/devise-async", branch: "devise-4.x" # for user authentication

Moje pytanie brzmi, gdzie patrzę i co muszę zrobić, aby opracować zmiany mają być w stanie wysłać XHR dla turbolinks mobile otoki?

W tej chwili to się nie zaloguje i wiem (lub myślę) Potrzebuję uzyskać DEVISE, aby przejść na XHR, ale nie wiem jak.

Sugestie, jak to zrobić? Lub zalecenia dotyczące materiału referencyjnego?

Odpowiedz

2

Musisz zaktualizować inicjator devise, aby zaakceptować żądania ajax.

config.http_authenticatable_on_xhr = false 
config.navigational_formats = ["*/*", :html, :json] 

Prawdopodobnie będziesz musiał zaktualizować rejestrację i kontrolery sesji, aby odpowiedzieć również na json.

format.json { render json: resource } 
+0

Witaj Stephen, Dzięki - Bounty jest cały twój! Szybkie pytanie, dodałem format.json właśnie tutaj (tylko na tworzenie) - czy to ma sens: http://take.ms/pihdd Wielkie dzięki za odpowiedź. – user2970050

+0

Pożądane ładowanie nie jest specyficzne dla odpowiedzi JSON. To ostrzeżenie mówi ci tylko, że ładujesz dane, które nie są używane. Sprawdź http://guides.rubyonrails.org/active_record_querying.html#eager-loading-multiple-associations – Stephen