利用這個特性,可以做到一個調用更新多個 html 元素的目的(Update Multiple Elements by One Request)。比如以下 rjs 模板:
page.update_html 'container', :partial => 'partial_page'
page.visual_effect :highlight, 'container'
page.alert 'Updated Successfully'
將會更新 container 元素的內容,然後有一個 highlight 的效果,最後彈出一個 Updated Successfully 的對話框。
再聯繫到 inu.cc 的現有框架,過渡依賴於局部渲染。全局傳參的架構確實很保險,但是過於臃腫,現在回想起來甚至有點違背了 rails 本身倡導的 agile 的思想。既然有現成的、符合使用慣例的實現方式,爲何要自己另外建立一套框架?這點確實是設計初期沒有考慮到的。結果導致了當前架構的不易維護。
吃一塹長一智,在此記錄下以前忽略的幾種模式:慣例優先、默然渲染、rjs、rxml,以及提供各種常用服務的開發包。希望這些記錄能夠使 inu.cc 的下一個版本更加快速、敏捷、易維護,同時能帶來更好的用戶體驗。
RJS API:RJS Api on http://api.rubyonrails.org