Сохранение DataMapper не удалось, но без ошибок - PullRequest
1 голос
/ 31 декабря 2010

Когда я пытаюсь изменить и затем сохранить модель с помощью DataMapper, я получаю исключение SaveFailure, но без ошибок.

В частности, я вижу это сообщение: «MonthlyBill # save вернул false, MonthlyBill не был сохранен»

Это код, делающий сохранение:

post '/monthly_bills' do
  with_authenticated_user do |user|
  description = params[:description]
  expected_amount = params[:expected_amount]
  pay_period = params[:pay_period]

  monthly_bill = MonthlyBill.new(:description=>description, :expected_amount=>expected_amount, :pay_period=>pay_period)
  user.monthly_bills << monthly_bill
  user.save
end

Модель пользователя:

class User
  include DataMapper::Resource

  property :id,             Serial
  property :email_address,  String
  property :password,       String

  has n, :monthly_bills
  has 1, :current_pay_period
end

Модель MonthlyBill:

class MonthlyBill
  include DataMapper::Resource

  property :id,             Serial
  property :description,    String
  property :expected_amount,Decimal
  property :pay_period,     Integer

  belongs_to :user
end

В чем проблема и, что более важно, как я могу заставить DataMapper более конкретно сказать мне, что не так?

1 Ответ

1 голос
/ 31 декабря 2010

Хм - эти заглавные буквы выглядят для меня тревожно. Я бы сделал ...

has n, :monthly_bills 
has 1, :current_pay_period #do you really have a CurrentPayPeriod model?!

А затем попробуйте:

monthly_bill = MonthlyBill.new(:description=>description,:expected_amount=>expected_amount, :pay_period=>pay_period, :user=>user)
monthly_bill.save
...