Получение ошибки при попытке сохранить запись таблицы

У меня проблема при попытке создать простой список проектов. Сначала я определил модель с тремя столбцами, которые должны принадлежать составному ключу.

class Project
  include Cequel::Record

  key :client, :text, { partition: true }
  key :type, :text, { partition: true }
  key :dep, :text, { partition: true }

end

Позже, когда я попытаюсь создать проект через

project = Project.create!({client: "test", type: "test", dep: "test"})

Я получаю следующую ошибку:

/usr/local/rvm/gems/ruby-2.1.5/gems/cequel-1.6.1/lib/cequel/record/callbacks.rb:34:in `save': undefined method `batch' for nil:NilClass (NoMethodError)

Сообщение об ошибке не очень наглядно. Может кто-нибудь помочь здесь?

---редактировать----

Я нашел проблему. После подключения я должен установить член класса Cequel::Record.

connection = Cequel::connect(config);
Cequel::Record.connection = connection

Вероятно, это потому, что я не использую рельсы, а только обычный рубин.
Теперь я столкнулся с другой проблемой. Таблицы не создаются автоматически с Project.create! но я должен сначала создать таблицу вручную:

  connection.schema.create_table(:projects) do 
    partition_key :client, :text
    partition_key :type, :text
    partition_key :dept, :text
  end

Но этот синтаксис отличается от документированного определения Record, и я нашел его, только просматривая исходный код. Но это создает две проблемы.

  • Код накладных расходов
  • Я не знаю синтаксис для has_many а также belongs_to поэтому я не могу создать таблицу правильно, если запись включает это

Я пропускаю метод для автоматического создания таблицы из Project определение класса?

0 ответов

Другие вопросы по тегам