我正在学习 Sinatra 和 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”部分返回错误,因为我每次都被重定向到“/list”。如果我使用#update 方法而不是#save,DM 会抱怨“脏记录”。
任何人对我做错了什么有任何想法,或者你能指出我使用 DataMapper 和 Sinatra 在 SQLite 中编辑记录的示例吗?
谢谢!