Плагин Redmine: как добавить пользовательское поле проекта

Я хочу создать пользовательское поле проекта в плагине. Несмотря на то, что при запуске «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, я использовал {} вместо [], но об ошибке не сообщалось).


person user2743331    schedule 03.09.2013    source источник


Ответы (1)


Я полагаю, что у вас есть опечатка после 'Estimated time units'. Замените ';' на ','.

Вы можете протестировать скрипт миграции вашего плагина, установив/удалив плагин с помощью следующих команд:

  • для установки плагина:

грабли redmine:плагины:мигрировать RAILS_ENV=производство

  • для удаления плагина:

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).

person Miguel Rentes    schedule 06.01.2015