3

我想在插件中创建一个项目自定义字段。尽管运行“rake redmine:plugins:migrate RAILS_ENV=production”似乎应用了迁移,但没有创建项目自定义字段。这是迁移:

更新:(无法回答我自己的问题,所以我会用答案修复帖子)。

class PopulateCustomFields < ActiveRecord::Migration
def self.up
  ProjectCustomField.create(:name => 'Estimated time units'; :field_format => 'list', :possible_values => ['Hours', 'Points'], :default_value => 'Hours', :is_required => true, :editable => true, :visible => true)
end

(我之前对 :possible_values 有错误的语法,我使用 {} 而不是 [],但没有报告错误)。

4

1 回答 1

2

我相信你后面有一个错字'Estimated time units'。替换';'by ','

您可以通过使用以下命令安装/删除插件来测试插件迁移脚本:

  • 用于安装插件:

rake redmine:plugins:migrate RAILS_ENV=production

  • 用于卸载插件:

rake redmine:plugins:migrate NAME=plugin_name VERSION=0 RAILS_ENV=production

查看官方文档以获取更多详细信息。

一个示例迁移脚本可能是这样的:

class PopulateCustomFields < ActiveRecord::Migration
  # method called when installing the plugin
  def self.up
    if CustomField.find_by_name('A New Custom Field').nil?
      CustomField.create(name: 'A New Custom Field', field_format: 'text')
    end
  end

  # method called when installing the plugin
  def self.down
    CustomField.find_by_name('A New Custom Field').delete unless CustomField.find_by_name('A New Custom Field').nil?
  end
end

如果在安装/卸载插件时正确添加/删除了“文本”类型的自定义字段“新自定义字段”,请检查 redmine 数据库。此外,检查每个步骤是否没有输出错误(也请参阅 redmine 日志)。

于 2015-01-06T18:08:14.943 回答