Altere o modelo existente com um plug -in Redmine
-
19-09-2019 - |
Pergunta
Os tutoriais do plug -in Redmine explicam como envolver os modelos principais, mas o que eu preciso é adicionar outra coluna à tabela de diários. Preciso de um campo booleano inserido no modelo de periódicos. Criar outro modelo com uma relação 'pertences_to: diário' parece um exagero. Isso pode ser feito com um plugin? Devo notar que sou um novato no Rails.
Solução
Você só tem que criar o apropriado migração.
No diretório do seu plugin, crie o arquivo db/migrate/update_journal.rb
com o seguinte :
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
Então você pode executar a tarefa rake db:migrate_plugins RAILS_ENV=production
Para atualizar seu banco de dados com o novo campo.
Depois de executar a migração, seu banco de dados de periódicos terá o my_bool
Campo que você poderá chamar como qualquer outro campo.
Outras dicas
Consegui estender o modelo de usuário existente usando o seguinte código:
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
Além disso, eu precisava nomear o arquivo de migração da maneira que começou com um número, por exemplo. myplugin/db/migre/001_update_user.rb