Введенное целое число не было принято в качестве числа в рельсах 3.1.0 - PullRequest
0 голосов
/ 02 февраля 2012

В нашем приложении rails 3.1.0 произошла странная ошибка при сохранении новой цитаты в контроллере котировок. Кавычка принадлежит rfq, а rfq 18 был передан в контроллер котировок. Ошибка:

Validation failed: Quoted total is not a number

Отображаются следующие параметры:

{"utf8"=>"✓",
 "authenticity_token"=>"p9waUq7wNk6djm9uRtDOA0eHLzzlJuSCWrTsSEBvcck=",
 "quote"=>{"test_item_ids"=>["1",
 "2"],
 "_destroy"=>"false",
 "quoted_total"=>"290"},
 "commit"=>"Save",
 "rfq_id"=>"18"}

Как видно, quoted_total равно 290. Но как-то оно не было распознано как число.

Вот код создания в контроллере кавычек:

    @quote = @rfq.quotes.new(params[:quote], :as => :roles_new)
    @quote.input_by_id = session[:user_id]
    @quote.test_items =  TestItem.find_all_by_id(params[:quote][:test_item_ids]) 
    if @quote.save!
      redirect_to URI.escape("/view_handler?index=0&msg=quote saved!")
    else
      flash.now[:error] = "Not saved!"
      render 'new'
    end

Ошибка вызвана @ quote.save. Код rspec для контроллера котировки имеет ту же ошибку. Что вызвало ошибку? Большое спасибо.

1 Ответ

1 голос
/ 02 февраля 2012

Я предполагаю, что вы проверяете quoted_total как число в вашей модели, фактически, params [: quoted_total] является строкой.

...