2010-11-15 41 views
2

這可能是非常簡單的,但我有一個嵌套的資源可以說:自定義操作,而不會增加路線

地圖。 resources:book,:has_many =>:pages

我寫了一個名爲「turn」的操作,它將page.count增加1.如何使用link_to調用此操作?提前致謝。

回答

0

很難分辨您的page.count在哪裏。在Railish中,您會發現pages.count(注意's')。此外,count(和size)是陣列和哈希et.al.上的只讀屬性。由ruby提供,返回元素的數量。您不設置count

接下來,我不確定您的turn行動應該在書籍或網頁上的哪個位置生活?它做了什麼之後應該發生什麼?最後,路線是使行動成爲行動的一種行爲 - 沒有它,它只是一種功能。

一會兒,我們假設您正試圖存儲一本書中的Page已被訪問的次數。在你的Page模型中有一個名爲readstimes_viewed等的實例變量會更好。假設您的Book模型正在使用寧靜的路由,在Book的show操作中,您將在呈現視圖之前創建正在查看的Page模型的實例變量並增加它的reads屬性。

如果你正在嘗試做一個鏈接排序「喜歡」 Facebook中如何工作的,這意味着你要更新一個表中的記錄不發送用戶到不同的頁面,你需要使用link_to_remote *和一些JavaScript。在那種情況下,我只是把你引用到關於這個主題的Railscasts。我覺得從Rails 3開始,link_to_remote就變成了link_to:remote => true