2012-07-29 43 views
0

我一直在我的小項目幾個月的工作之前,我認爲這可能是我的方式來處理下面的問題是有點不優雅的RoR和有更多的傳統方式:Ruby on Rails的ajax請求與任意數量的參數

我的服務使用一些javaScript API從特定的社交網絡服務中檢索信息,並在客戶端執行信息處理,JS環境存儲處理結果。所以我需要在不重新加載頁面的情況下與用戶交互:特別是有一些我需要工作的過濾器。

比方說,我需要按發佈時間過濾請求的結果。還有類別選擇器。我希望我的應用程序按以下方式工作:
1.用戶類型發佈年齡內的天數應爲 - 沒有任何「提交」或「應用」過濾器按鈕
2.用戶點擊類別後正在應用過濾器 - 選擇器:它們是主要的UI控制器,由RoR helper組成:

<li class="cat_selector"><%= link_to category.name, posts_path(:cat_id => category.id), :remote => true%></li> 

什麼是'通常'的方法來解決這個問題?如何通過點擊某個特定鏈接輕鬆地將所有控件的值「收集」在一個Ajax請求中? 謝謝!

回答

0

我會放棄默認軌的Ajax處理和沿這將導致匹配鏈接,阿賈克斯將數據從形式與ID some_form提交自己的

$('.cat_selector a').click(function(){ 
    $.ajax({ 
     url: this.href, 
     data: $("#some_form").serialize() 
    }) 
}) 

行寫自己的東西。你當然可以建立一個任意的數據對象,但如果可以的話,使用表單要容易得多。

+0

謝謝!這看起來正是我想要的。 ):$('。cat_selector a')將回調綁定到一些元素集合,但回調需要區分它們:在RoR實現中,「posts_path(:cat_id => ** category.id **) 「類別ID在鏈接中烘焙。那麼'function'如何通過它被調用的cat_selector知道? – 2012-07-29 18:15:04

+0

需要嗎?我將URL設置爲單擊的事件的href,以便應該可以(假設鏈接與原始實現中的鏈接保持一致) – 2012-07-29 20:19:59