009994c3985985809d2d644bd49aa1c2

Like 的設計:使用 restful 方式或是用 virtual attributes

2012-09-24 12:15:00 +0800lulalalaRuby on Rails 節點 中發起
最後由 chiayi2012-10-04 14:35:01 +0800回應 , 256次閱讀

目前我們有個 likes table ,是 polymorphic association 的一部分,許多 model 都能用這來作 like 的紀錄。

目前的 route 用 nested resource 作:

POST   /items/:item_id/likes
DELETE /items/:item_id/likes/:id

總覺得想要把 delete 的 like_id 隱藏起來。

第一種方法是想說,不要有特別的 route 了,設立一個 virtual attribute ,直接用 update item 方式來設立 like 。缺點就是所有 likable 的 model 都要這樣設立。

第二種方式是想說:不用 nested resource。作個 items#like action 然後由 PUT 或 DELETE 來判斷是哪種 like 動作就好了。

請問大家對這兩種設計的看法是,或是有更好的建議?

截至 2012-10-04 14:35:01 +0800,共收到 4 條回應
3463579c8daa7b5679ef5e045bc4d168
chucai 1樓, 於2012-09-25 12:32:27 +0800回應

重写

def param
end

方法?

Fd779852eb8e519999f8b35c47777608
chiayi 2樓, 於2012-10-02 11:13:28 +0800回應

第二種方式比較好,參考http://github.com/schneems/likeable
這類型的資料適合用redis處理

009994c3985985809d2d644bd49aa1c2
lulalala 3樓, 於2012-10-02 18:16:04 +0800回應

@chiayi 謝謝,請問 redis 優於 sql 的這種情況有什麼名字嗎?想查一下優缺點。

Fd779852eb8e519999f8b35c47777608
chiayi 4樓, 於2012-10-04 14:35:01 +0800回應

@lulalala redis擅長處理set, counter, 這裡有很多資料可以看
http://blog.nosqlfan.com/html/3537.html

早點投向redis是明智的選擇,不想自已造的話,也有很多現成的gem可用

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊