Rhomobile 4.1.1 — Как создать локальную (несинхронизированную) таблицу

#ruby #rhomobile #rhodes

#ruby #rhomobile #rhodes

Вопрос:

Следуя документации, я пытаюсь создать свою первую модель в Rhomobile 4.1.1

Рекомендуется создать класс Ruby и сказано, что фреймворк создаст необходимую таблицу. Но я, должно быть, неправильно понял, потому что это работает не так.

модель в app/Auth/auth.rb

 class Auth
  include Rhom::FixedSchema

  set :schema_version, '0.1'

  property :session_token, :string
  property :remember_token, :string

  def self.auth_record
    @auth_record ||= begin
      if find(:count) == 0
        create
      else
        find :first
      end
    end
  end

end
 

Как вы можете видеть, я пытаюсь создать единую таблицу записей с фиксированной схемой. Я не использую RhoSync. В результате таблица не создается, я пропускаю шаг. Любой намек приветствуется. Спасибо

Ответ №1:

Моя ошибка заключалась в том, что

 require 'Auth/auth'
 

Поверх одного из моих файлов.

Платформа полагается на const_missing загрузку и инициализацию модели (внедрение зависимостей, создание таблиц, …). Поскольку я явно требовал исходный файл, константа уже была определена, поэтому Rhodes internal не выполнил необходимую инициализацию. Устранение require исправленной проблемы.

Извлеченный урок, также я бы сказал, что 1) это не совсем надежное кодирование и 2) это полностью недокументировано.