2010-02-19 63 views
0

編輯記錄我在學習西納特拉和DataMapper的過程。爲此,我一直在玩「客戶數據庫」項目。使用SQLite,DataMapper的,和西納特拉

創建和刪除記錄是微不足道的,現在我正在編輯記錄。到目前爲止,我已經成功地拼湊在我的意見的形式和一對夫婦,我認爲將編輯記錄的路線。下面是一些代碼來說明我的問題:

我edit.erb觀點:http://gist.github.com/308405

我的編輯/更新路線:

get '/edit/:acct' do 
    @title = "Edit Client Data" 
    @client = HE_Backend.get(params[:acct]) 
    erb :edit 
end 

post '/update/:acct' do 
    client = HE_Backend.get(params[:acct]) 

    client.attributes = { 
    :name => params['client']['name'], 
    :company => params['client']['company'], 
    :street => params['client']['street'], 
    :state => params['client']['state'], 
    :zip => params['client']['zip'], 
    :phone => params['client']['phone'], 
    :fax => params['client']['fax'], 
    :website => params['client']['website'], 
    :order_date => params['client']['order_date'], 
    :payment_date => params['client']['payment_date'], 
    :monthly => params['client']['monthly'], 
    :setup => params['client']['setup'], 
    :details => params['client']['details'], 
    :notes => params['client']['notes'], 
    :status => params['client']['status'], 
    } 

    if client.save 
    redirect "/show/#{client.acct}" 
    else 
    redirect('/list') 
    end 
end 

它看起來像 「client.save」 部分的路由返回false,因爲我每次都重定向到「/ list」。如果我使用#update方法而不是#save,DM會抱怨「髒記錄」。

任何人有任何想法,我做錯了,或者你可以點我與DataMapper的西納特拉和SQLite中進行編輯記錄的例子嗎?

謝謝!

回答

0

事實證明,這是一個驗證的問題。如果我沒有到位的驗證,並把比在我在這些領域模型中的其他數據類型,該#save方法顯然返回false。