原投影片連結:https://speakerdeck.com/xdite/maintainable-rails-view
這其實是一個很長的系列 Talk。不過時間關係,現場我被迫卡了很多東西。
不過在寫投影片時,幾乎所有程式碼我都已經放在 Logdown 的草稿夾了。所以回台灣之後,睡飽之後有空,我就把這些東西重新整理出來了。
這些東西要說是我 Rails 生涯的 View 精華也不為過....
以下是 Maintainable Rails View 系列文目錄
第二篇的代码
<%= render_cell :user, :rencent_posts, :user => :user %>
需要改成下边这样吧?
<%= render_cell :user, :rencent_posts, {:user => @user} %>
请教,第一篇的 5. Tell, Don't ask
这里说到這是因為在 View / Helper 裡面被 query 的資料是不會 cache 起來的。
然后改进如下
<% @posts.each do |post| %>
<%= render_post_taglist(post.tags) %>
<% end %>
这个不是也在 view 里面的么?效率就高了?改进了?
我觉得有两个好处:1 是让 helper 做一些逻辑判断,2 是避免在 view 里写超过 3 个 . 的状况,比如 <%= current_user.last_post.tags %>
不。view 修改是重點。不應該在 helper 裡面問資料。因為 helper 會被用很多次,helper 不會知道 controller 有沒有幫它撈。所以在設計上就應該做成撈好給他...
@xdite 建议加上 controller 里面基于权限进入不同的 view,因为 view 里面有 if-else 很大一部分原因是因为要在一个页面里面根据角色显示不同部分的内容。
#21 楼 @501225658 #22 楼 @aisensiy XD 大神把这个系列整成了一本书,在网上买。
介绍。网址: http://blog.xdite.net/posts/2013/11/12/maintainable-rails-view-is-now-a-book
要不一起团购?哈哈