0

我正在安装surveyor gem,我按照那里的说明进行操作,但是当我执行此行来安装gem组件时:

script/rails generate surveyor:install

我遇到了这些冲突

    conflict  db/migrate/20120716110951_create_questions.rb
Overwrite /home/saka/modares/db/migrate/20120716110951_create_questions.rb? (enter "h" for help) [Ynaqdh] h

我知道问题在于 gem 和现有应用程序中的这些冲突模型名称,因为我已经有一个名为 Question 的模型。

如何解决这个冲突?

4

2 回答 2

2

如何重命名您的问题模型?您基本上必须创建一个用于重命名的迁移(如果您还没有生产数据,则如果您不需要迁移,则更改初始迁移)并在您的应用程序中找到所有出现的问题/问题并相应地重命名它们。这有点工作,但不是真正的问题。

于 2012-07-23T08:30:06.183 回答
2

这种行为是测量员设计决策的结果。我们希望允许人们在rails generate surveyor:install每次升级surveyor 时运行,并获得新的迁移和更改的文件。生成器找到具有相同类名的迁移,保留时间戳,如果不同,则将冲突呈现给用户。可能会影响您做出决定的一件事是,如果您确实维护现有create_questions迁移,则每次升级 Surveyor 时都必须应对这种冲突。有几个解决方案:

  1. 可以更改 Surveyor 以支持名称空间、可配置或其他可修改的模型名称。这肯定会花费一些时间,目前此功能没有问题(但可以随意添加)。

  2. 您可以重命名您的迁移,生成器将运行。删除create_questionsadd_correct_answer_id_to_questions迁移,并从add_api_ids迁移中删除问题。确保您的问题模型与 wiki 中记录的测量员问题模型相匹配(无法保证我们会保持图表同步)。更确切地说,您可以创建一个空白 rails 项目,添加测量员,运行生成器和迁移,然后查看db/schema.rb. 您必须手动使您的问题模型与测量员的模型保持同步。

  3. 你可以重命名你的模型。如果它具有除测量员之外的现有功能,那么您可能无论如何都想走这条路。

于 2013-04-15T19:40:09.830 回答