データベースのフィールドを更新しようとしたときに、理解できないエラーが発生しました。rakeタスクを介してupdate_attributeでレールを使用しています。奇妙なのは、エラーがタスクまたはメソッドのいずれかで使用されていない列に関連していることです。
update_attributes
同様に使用してみましposition.save(validate: false)
たが、すべて同じエラーが発生します。どんな助けでも大歓迎です。
エラー:
Mysql2::Error: Unknown column 'NaN' in 'field list': UPDATE `positions` SET `is_open` = 0, `cost_per_share` = NaN WHERE `positions`.`id` = 617
エラーが追跡される行:
position.update_attribute(:is_open, open)
タスクのソース コード:
namespace :tom do
desc "Update positions.is_open field"
task check_if_open: :environment do
include TomDate
positions = Position.all
positions.each do |position|
if position.orange_highlight == 1
open = 0
elsif position.buy_misc == 'EXP' || position.buy_misc == 'ASSIGN' || position.sell_misc == 'EXP' || position.sell_misc == 'ASSIGN'
if position.profit == 0 && position.loss == 0
open = 1
elsif position.profit > 0
open = 0
elsif position.loss < 0
open = 0
else
open = 1
end
elsif tom_is_date_valid(position.buy_date) || tom_is_date_valid(position.sell_date)
if position.profit == 0 && position.loss == 0
open = 1
elsif position.profit > 0
open = 0
elsif position.loss < 0
open = 0
else
open = 1
end
else
open = 1
end
position.update_attribute(:is_open, open)
end
end
end