Изменить существующую модель с помощью плагина Redmine
-
19-09-2019 - |
Вопрос
Учебники плагина Redmine объясняют, как обернуть основные модели, но мне нужно добавить еще один столбец в таблицу журналов. Мне нужно логическое поле, вставленное в модель журналов. Создание другой модели с соотношением «принадлежности»: журнал «кажется излишним. Можно ли это сделать с помощью плагина? Я должен отметить, что я новичок в Rails.
Решение
Вам просто нужно создать соответствующее миграция.
В каталоге вашего плагина создайте файл 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
Поле, которое вы сможете позвонить, как все остальные поля.
Другие советы
Я смог расширить существующую пользовательскую модель, используя следующий код:
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/db/migrate/001_update_user.rb