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'';'をに置き換え','ます。

次のコマンドを使用してプラグインをインストール/削除することで、プラグイン移行スクリプトをテストできます。

  • プラグインのインストール:

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

プラグインのインストール/アンインストール時に、タイプ「テキスト」のカスタム フィールド「A New Custom Field」が正しく追加/削除されているかどうか、redmine データベースを確認します。また、各ステップに出力エラーがないことを確認してください (redmine ログも参照してください)。

于 2015-01-06T18:08:14.943 に答える