2013-05-21 54 views
0

3周前我開始使用Ruby on Rails,喜歡它,但我需要一些幫助。Ruby on Rails軌跡在背景中的位置

我正在研究一個Web應用程序,其中包括跟蹤用戶的位置並將其定期存儲在數據庫中。 每分鐘獲取位置的javascript正在工作,但我不知道如何在db中存儲這個位置。 腳本在應用程序視圖中定義。我設法通過POST使用ajax調用UsersController中定義的update_location動作。緯度長的列被正確地更新,但發生頁面重定向。我希望更新過程對用戶是異步的並且是隱藏的。

當我嘗試使用PUT ajax請求(POST with _method = PUT)時,我得到一個未找到用戶/ URL:/ location_update的URL。

我是一個完整的初學者我RoR,甚至在Web Dev。 P.S.我使用Rails 4

編輯:使用$阿賈克斯或$。員額與_method: 「PUT」 和URL/update_location觸發以下500錯誤

ActionView::MissingTemplate (Missing template users/update_location, application/update_location with {:locale=>[:en], :formats=>[...]}. Searched in: 
    * "/home/.../app/views" 
): 

我update_location動作看起來像這樣

def update_location 
    @car = Car.find(3) 
     if @car.update_attributes(location_params) 
     end 
    end 

數據庫正在更新,但我仍然得到該錯誤。

回答

1

我想你想的Rails剛剛返回jQuery的,一切都很順利..但默認情況下,它試圖將一些HTML呈現給jQuery。

def update_location 
    @car = Car.find(3) 
    @car.update_attributes(location_params) 
    head :ok 
    end 
+0

就是這樣,謝謝! – Lori

1

您可能不應該通過用戶標識來確定此範圍;只需使用當前登錄的用戶併發布到「/ current_location」或類似的東西。並實現你嘗試一下,你應該使用jQuery的post方法在JavaScript執行AJAX提交到服務器:

$.post("/my_location", { "_method": "put", lat: xxx, long: yyy }, function() { 
    // done! 
}, "JSON"); 
+0

嘗試這樣做,它的工作就像$阿賈克斯,我得到的問題描述的500錯誤(我只是編輯的問題) – Lori