我想在插件中创建一个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,我使用{}而不是[],但没有报告错误。)
答案 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日志)。