Я использую ruby 1.9.2 и sinatra 1.3.2, Datamapper
Я получаю сообщение об ошибке: «невозможно преобразовать ноль в хэш»
в / 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, что он пытается создать хеш, но почему, если он не может создать хеш, просто не выдает ошибку, которую он не может сохранить (build) @user .records зависимость?
Есть ли способ обойти это? Потому что я хотел бы создать запись, используя отношения.
Спасибо за совет!