Redmine插件:如何添加项目自定义字段

时间:2013-09-03 14:17:53

标签: redmine redmine-plugins

我想在插件中创建一个Project Custom Field。虽然运行“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,我使用{}而不是[],但没有报告错误。)

1 个答案:

答案 0 :(得分:2)

我相信你在'Estimated time units'之后有一个错字。将';'替换为','

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

  • 用于安装插件:

rake redmine:插件:迁移RAILS_ENV =生产

  • 用于卸载插件:

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

查看official documentation了解更多详情。

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

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

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