目前我们有个 likes table,是 polymorphic association 的一部分,许多 model 都能用这来作 like 的纪录。
目前的 route 用 nested resource 作:
POST /items/:item_id/likes
DELETE /items/:item_id/likes/:id
总觉得想要把 delete 的 like_id 隐藏起来。
第一种方式是想说:不用 nested resource。作个 item/:item_id/like action 然后由 PUT 或 DELETE 来判断是哪种 like 动作,自行增减 like association 就好了。
第二种方法是想说,不要有特别的 route 了,设立一个 virtual attribute,直接用 update item 方式来设立 like。缺点就是所有 likable 的 model 都要这样设立。
请问大家对这两种设计的看法是,或是有更好的建议?