Изменить существующую модель с плагином Redmine - PullRequest
4 голосов
/ 11 ноября 2009

В руководствах по плагину Redmine объясняется, как обернуть основные модели, но мне нужно добавить еще один столбец в таблицу журналов. Мне нужно логическое поле, вставленное в модель журналов. Создание другой модели с отношением «own_to: journal» кажется излишним. Можно ли это сделать с помощью плагина? Должен заметить, что я новичок в рельсах.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2009

Вам просто нужно создать соответствующую миграцию .

В каталоге вашего плагина создайте файл db/migrate/update_journal.rb со следующим:

class UpdateJournal < ActiveRecord::Migration
    def self.up
        change_table :journal do |t|
            t.column :my_bool, :boolean
        end
    end

    def self.down
        change_table :journal do |t|
            t.remove :my_bool
        end
    end
end

Затем вы можете выполнить задачу rake db:migrate_plugins RAILS_ENV=production, чтобы обновить базу данных новым полем.

После выполнения миграции в базе данных вашего журнала будет поле my_bool, которое вы сможете вызывать, как и любое другое поле.

0 голосов
/ 12 ноября 2014

Мне удалось расширить существующую модель пользователя, используя следующий код:

class UpdateUsers < ActiveRecord::Migration
  def up
    add_column :users, :your_new_column, :string, :default => ''
    add_column :users, :your_other_new_column, :string, :default => ''
  end

  def down
    remove_column :users, :your_new_column
    remove_column :users, :your_other_new_column
  end
end

Также мне нужно было назвать файл миграции так, чтобы он начинался с цифры, например. MyPlugin / дб / мигрирует / 001_update_user.rb

...