Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用SQLite、DataMapper和Sinatra编辑记录_Ruby_Sqlite_Sinatra_Datamapper - Fatal编程技术网

Ruby 使用SQLite、DataMapper和Sinatra编辑记录

Ruby 使用SQLite、DataMapper和Sinatra编辑记录,ruby,sqlite,sinatra,datamapper,Ruby,Sqlite,Sinatra,Datamapper,我正在学习Sinatra和DataMapper。为此,我一直在玩一个“客户数据库”项目 创建和删除记录很简单,现在我正在编辑记录。到目前为止,我已经设法在我的视图中拼凑出一个表单和一些我认为可以编辑记录的路由。下面是一些代码来说明我的问题: My edit.erb视图: 我的编辑/更新路线: get '/edit/:acct' do @title = "Edit Client Data" @client = HE_Backend.get(params[:acct]) erb :edi

我正在学习Sinatra和DataMapper。为此,我一直在玩一个“客户数据库”项目

创建和删除记录很简单,现在我正在编辑记录。到目前为止,我已经设法在我的视图中拼凑出一个表单和一些我认为可以编辑记录的路由。下面是一些代码来说明我的问题:

My edit.erb视图:

我的编辑/更新路线:

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和Sinatra在SQLite中编辑记录吗


谢谢

这是一个验证问题。如果我没有进行验证,并将模型中的数据类型以外的数据类型放在这些字段中,#save方法显然返回false