2012-09-07 87 views
0

我有一個產品列表和一個名爲'sold'的列。當用戶將狀態更改爲false或true時,我希望我的rails應用程序更新產品的html頁索引,但只更新包含產品狀態的「div」,而不重新加載所有html頁面。 是否有教程或寶石會讓我的生活更輕鬆?我發現的所有教程都是針對客戶端AJAX請求的。服務器端Ajax Rails 3

回答

0

服務器發起請求是不可能的,因爲,在HTTP下的「對話」總是由客戶端啓動。如果你真的想這樣做,你需要在你的網頁中嵌入一個服務器,並打開它並監聽一個端口,這是有問題的,因爲沒有辦法從網頁啓動服務器,並且由於許多網絡阻塞傳入的請求,有很好的理由。

更新已顯示的頁面通常是由具有客戶端輪詢定期服務器通過AJAX完成(如每隔幾秒鐘)詢問是否有任何改變。一種方法是讓客戶端發送最後一次檢查的時間,並做一個Product.where("updated_at > ?", timestamp)服務器端並返回。

0

指定產品ID到行動態。在你想更改文本的'td'中添加一個'status'類。

%tr{:id => "product_#{product.id}"} 
    %td Cell #Product 
    %td.status Available 
    %td #link_to controller method where product status is changed to 'Sold.'. Set ":remote => true" for request to be ajax. 

創建一個文件sell_product.js.haml(我認爲haml和sell_product作爲控制器方法)。在js文件搜索特別id和$錶行(」狀態)。文本()爲‘可用’和替換它與‘賣’