0

嘿伙计们,我第一次尝试使用 ruby​​ awesome_nested_set gem。

我在 rails-api 应用程序中的 minitests 有问题。我知道问题出在哪里,但目前不确定如何解决。

当我运行“rails test”时,我收到一堆类似于以下的错误: StoresControllerTest#test_should_create_store: ActiveRecord::StatementInvalid: Mysql2::Error: Field 'lft' doesn't have a default value: INSERT INTO categories (name, created_at, updated_at, id, store_id) VALUES ('MyString', '2018-02-23 03: 08:13', '2018-02-23 03:08:13', 980190962, 980190962)

这是我的迁移: class AddLftToCategory < ActiveRecord::Migration[5.0] def change add_column :categories, :lft, :integer, :null => false add_index :categories, :lft end end

我相信这个问题是由于我的迁移设置“:lft,:null => false”造成的。这是最有意义的,但是我该如何解决这个问题?我是否需要在我的夹具中添加一些东西,或者我是否还有其他东西必须做?

谢谢。

4

1 回答 1

0

阅读 gem 的文档后,很明显您的迁移不完整。您的类别需要有一个 :rgt 列以及 :lft、:name 和 :parent_id 才能使 gem 工作。请参阅此处的文档:(https://github.com/collectiveidea/awesome_nested_set/blob/master/README.md)。您还需要将acts_as_nested_set这些字段添加到模型中以由 gem 填充。

于 2018-02-23T23:17:12.373 回答