2011-09-28 34 views
1

這個問題很難解釋,所以請耐心等待。我有一個包含記錄表中記錄的行的表。我可以使用ajax將行添加到此表中,並且當我將小時輸入到行中的文本字段並單擊時,記錄將通過ajax提交。 我的問題是,我有一個刪除按鈕旁邊的每一行。當我刷新頁面或已加載頁面時已存在於記錄表中的行時,這些行會按照您的預期進行刪除。但是,如果我剛剛添加了幾個小時,並沒有刷新頁面,我不能刪除記錄。在Ruby/Javascript中設置按鈕的href

搜索香港專業教育學院後,將範圍縮小到這一點:

已經存在的記錄:

<a rel="nofollow" data-method="delete" data-confirm="Are you sure?" href="/records/2"> 

只是說:

<a class="delete" title="delete row" rel="nofollow" data-remote="true" data-method="delete" data-confirm="Are you sure?" href="Delete"> 

因爲使用Ruby方法IM從記錄中 「刪除」控制器它需要與記錄ID href,因此「記錄/ 2」。這將不會改變,直到我刷新了不是我想要的頁面。

我想過在記錄提交時設置按鈕的href,但我知道如何做到這一點在js或紅寶石,加上id必須提交,然後再次抓取記錄id回來。或者,如果有人能夠提出一個比上述更好的主意,並且「在提交時刷新頁面」即可。

+0

爲什麼新記錄包含比模板生成的更多屬性?你可以發佈通過用戶界面創建行時生成的代碼嗎? – Cluster

+1

我認爲原因是當我第一次生成它時向表中添加一行,然後當我添加小時時它會提交一個隱藏的表單並寫入數據庫。但是,當我刷新頁面時,我的控制器查看記錄表並記錄它創建一行。因爲它有兩個不同的行。 – SD1990

+1

創建HTML的ruby – SD1990

回答

2

Iam猜測你正在使用rails,所以你需要做的是控制器應該返回一個JS響應。檢查這個question。要在JavaScript中呈現erb代碼,您應該使用escape_javascript。