[問題] Rails Cache

看板Ruby作者 (ayaya)時間13年前 (2011/11/06 01:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
環境: e.g. Ruby 1.9.3, Rails 3.1.1 狀況: 目前我有一個頁面大致上是長這個樣子的 (in slim): #posts - cache [@posts.latest, @posts.current_page, current_user] do - @posts.each do |post| = post.title = post.body .links = edit_post_link(post) if current_user.can?(:edit, post) = paginate @posts 我想將整個 #posts cache, 但又希望 .links 因人而異, 所以我的 cache key 就必須含有最新一篇 post, 目前頁數以及 current_user, 而我希望能夠指定某一部份不要 cache (.links), 這樣我就可以拿掉 current_user, 讓所有 user 可以共用同一份 posts cache, 但我想這應該是做不到的事情? 所以我想從設計上著手, 目前我想到的兩個方法是: 1. 把編輯的連結移到各個 posts 的 show action, 該頁的 cache key 可以化簡成 [@post, current_user.can?(:edit, post)] 2. 把 .links 移出 #posts 外, 頁面讀入時再用 js 組合起來 基於不想隨意改變使用者習慣的前提下, 我不想選用 1 的方式, 但又覺得 2 好醜 XD 不知道有沒有其他更好的方式去解決這個問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.185.227
文章代碼(AID): #1EjMsHbg (Ruby)
文章代碼(AID): #1EjMsHbg (Ruby)