2012-06-25 102 views
-1

可能重複:
Ruby on Rails: Sending javascript data to ruby controllerRuby on Rails的:JSON,JavaScript和Ruby的

使用JSON,JavaScript和回報率

在我的RoR應用程序,我有一些總noobie在網頁上的JavaScript。我想通過我在我的控制器中建立了一個Ruby函數的陣列之一(這是可能的嗎?)

我讀過某處我需要轉換爲JSON。使用此命令給我的東西我可以工作(totalChanges是我的數組)

JSON.stringify(totalChanges) 

但我怎麼通過這一個紅寶石功能?如果有什麼不合理的話,請把我弄清楚。

感謝

編輯:

我使用jQuery。評論指出,我可以使用類似http://api.jquery.com/jQuery.ajax/的數據將數據發送到控制器。

我想要做的特定操作是將一些數據(在javascript數組中)保存到數據庫,然後重新加載頁面以顯示新數據。 jquery.ajax似乎有這麼多選項,我有點失落。

+0

通常你會使用AJAX將數據發送到您的MVC應用程序的控制器上的方法。 – jcolebrand

+0

有無論如何我可以使用JavaScript? – bdeonovic

+0

是的,JavaScript是AJAX的一部分。點擊[維基百科](http://en.wikipedia.org/wiki/Ajax_(編程)),花五分鐘閱讀,然後再繼續提問。異步Javascript和XML(但是我們也使用JSON,因爲它在線路上「更輕」,通常以這種方式傳輸的數據少30-40%) – jcolebrand

回答

1

您可以將使用jQuery像這樣的AJAX請求:

$.ajax({ 
    type: "POST", 
    url: "/route/to/action", 
    data: { mydata: JSON.stringify(totalChanges) }, 
    success: function(response, textStatus, jqXHR) { 
     console.log("Yay it worked.", response); 
    } 
); 

在你的行動,那麼你就可以檢索傳遞給你的行動像這樣的數據:

def action 
    mydata = params["mydata"] 
    # Save it to the database... 
end 
+0

多數民衆贊成我最終做了。謝謝:)我實際上發現代碼的其他地方,但遇到了更多的麻煩 – bdeonovic