我想寫一個redmine的插件,它取決於很多custom fields,所以我想自動創建自定義字段。理想情況下,在插件代碼中,或者如果不是通過腳本,我可以在安裝插件時運行 - 我真的不想通過Web界面創建10個以上的字段,當我設置它時,特別是當一個列表有很多值。在Redmine中自動創建自定義字段
任何人都可以告訴我,如果有這樣做的標準方法?
還有從現有安裝中導出自定義字段的好方法嗎?
我想寫一個redmine的插件,它取決於很多custom fields,所以我想自動創建自定義字段。理想情況下,在插件代碼中,或者如果不是通過腳本,我可以在安裝插件時運行 - 我真的不想通過Web界面創建10個以上的字段,當我設置它時,特別是當一個列表有很多值。在Redmine中自動創建自定義字段
任何人都可以告訴我,如果有這樣做的標準方法?
還有從現有安裝中導出自定義字段的好方法嗎?
您應該使用遷移腳本。將您的腳本放入#{PLUGIN_ROOT}/db/migrate
並在那裏撥打.create
。 Redmine資源包含許多類似的腳本。
例如,腳本可以有一個名稱:001_populate_custom_fields.rb
。
內容:
class PopulateCustomFields < ActiveRecord::Migration
def self.up
CustomField.create ...
end
def self.down
end
end
自定義字段基本上作爲一個資源實現(但沒有custom_fields的資源路由)。我不明白爲什麼你不能使用CustomField.create/new來創建插件需要的字段。同樣,你應該可以使用find()來獲取所有現有的自定義字段。 但是,我不得不說,我從來沒有這樣做過,不知道這是否是標準的方式。但是,無論如何,這樣做我看不出有什麼不妥。
隨着舍甫琴科Lesyuk回答,把你的腳本#{PLUGIN_ROOT}/db/migrate
下,通過使用命令來安裝/卸載插件測試。
對於安裝插件使用命令:
rake redmine:plugins:migrate
和卸載它:
rake redmine:plugins:migrate NAME=<your plugin name> VERSION=0
查看更多詳細信息,官方documentation。
例如,腳本001_populate_custom_fields.rb
可能是這樣的:
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 uninstalling 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
這將創建/刪除自定義字段「新的自定義字段」類型「文本」,之後從管理平臺數據庫檢查它的存在表custom_fields。
您是否有鏈接到CustomField.create的API?我需要添加一個自定義字段到我的問題列表,但似乎無法找到任何方式直接做到這一點 –