尝试保存表条目时出错

时间:2015-05-19 14:18:43

标签: ruby cassandra cequel

尝试创建简单的项目列表时遇到问题。 首先,我使用三列来定义模型,这三列应属于复合键。

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

但是这种语法与记录的记录定义不同,我只是通过筛选源代码找到它。但这会产生两个问题。

  • 代码开销
  • 我不知道has_manybelongs_to的语法,所以如果记录包含此内容我无法正确创建表

我是否忽略了从Project类定义自动创建表的方法?

0 个答案:

没有答案