【发布时间】:2012-04-08 17:15:29
【问题描述】:
我正在使用 ruby 1.9.2 和 sinatra 1.3.2,Datamapper 我收到错误:“无法将 nil 转换为哈希”
在 /new_record 我有一个表单,当提交表单(带有一些空白字段)而不是收到验证消息时,我收到了这个错误!
这里发布'/new_record' - 因为我用以前表单的一些值填充了这个表单
post '/new_record' do
@projects = Project.all
@date = DateTime.parse(params[:report][:date])
erb :new_record
end
post '/create_record' do
@user = User.get(current_user.id)
if @user.records.create(params[:record])
flash(:notice => "Report created successfully!")
redirect "/"
else
@projects = Project.all
@date = DateTime.parse(params[:report][:date])
erb :new_record
end
我猜不出为什么,因为类似的表格效果很好:
get '/new' do
#session[:user_id] = nil
title "Create new account"
erb :new_user
end
post '/create' do
@user = User.new(params[:user])
if @user.save
session[:user_id] = nil
redirect "/"
else
erb :new_user
end
end
我认为@user.records.create(params[:record]) 与 create 方法有关,它尝试构建哈希,但为什么如果它不能构建哈希就不要抛出无法保存(构建)@user 的错误.records 依赖?
有没有办法解决这个问题?因为我想使用关系建立记录。
感谢您的建议!
【问题讨论】:
标签: sinatra datamapper