Почему я не могу запросить мою модель DataMapper? - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь запросить столбец в моей модели здесь:

require 'rubygems'
require 'dm-core'
require 'dm-migrations'
require 'dm-aggregates'

db_name = 'mydb.sqlite'

DataMapper::Logger.new($stdout, :debug)
DataMapper.setup(:default, 'sqlite://' + Dir.pwd + '/' + db_name)

class Context
  include DataMapper::Resource
  property :id,         Serial
  property :order,      Integer

  def initialize
    self.order = (self.class.max(:order) || 0) + 1
  end

  def move_up
    temp = self.class.first(:order => (self.order - 1))
    temp.order += 1
    temp.save
    self.order -= 1
    self.save
  end

end

DataMapper.finalize
DataMapper.auto_upgrade!

Но когда я создаю пару экземпляров, я получаю следующую ошибку при вызове метода move_up.

Failure/Error: context2.move_up
+options[:order]+ entry 1 of an unsupported object Fixnum
# ./context.rb:11:in `move_up'

Несмотря на краевые условия, почему это не работает?

1 Ответ

3 голосов
/ 09 ноября 2010

: заказ - это зарезервированное слово, так как это одна из опций, которые вы передаете запросу. просто переименуйте его во что-то другое, и оно будет работать

...