
Backbone 函式庫
|
215
在 CRUD 函式裡,應該要使用純文字格式、無前置詞的參數值。以 Rails 的控制器為
例,它的
update
函式會如下:
def update
user = User.find(params[:id])
user.update_attributes!(params)
render :json => user
end
當然啦,這裡還會需要利用
attr_accessible
來設定屬性白名單,防止某些屬性值被惡
意竄改(
http://guides.rubyonrails.org/security.html#mass-assignment
)(不過這超出了本書
的範圍)。控制器的每組函式(除了刪除資料的函式以外),都應該要回傳 JSON 格式的
資料。
將屬性值序列化成 JSON 物件時,也需要特別注意。因為 Rails 預設會在所有資料前面
加上模型名稱前置詞,如下:
{"user": {"name": "Daniela"}}
但很不幸的,Backbone 沒辦法解譯這種格式的物件。因此得再多放一個初始化設定檔,
好讓 Rails 不會在序列化後的 JSON 物件裡,加上模型名稱前置詞:
# config/initializers/json.rb
ActiveRecord::Base.include_root_in_json = false
自訂同步方式
每當 Backbone 讀取伺服器端的模型資料,或是將模型儲存至伺服器端,都會呼叫
Backbone.sync()
。如果想改用其他的儲存機制 ...