Class: Msip::AsociabasicaGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Msip::AsociabasicaGenerator
- Defined in:
- lib/generators/msip/asociabasica_generator.rb
Overview
Generador para asociar una tabla básica con otra.
Instance Method Summary collapse
-
#genera_asociabasica ⇒ Object
Genera la asociación entre tablas básicas.
Instance Method Details
#genera_asociabasica ⇒ Object
Genera la asociación entre tablas básicas.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/generators/msip/asociabasica_generator.rb', line 33 def genera_asociabasica if ENV["DISABLE_SPRING"].to_i != 1 # http://makandracards.com/makandra/24525-disabling-spring-when-debugging Rails.logger.debug("Ejecutar con DISABLE_SPRING=1") return end if .belongs_to Rails.logger.debug { "Para asociar #{tablabasica} con belongs_to en #{tabla2}:" } Rails.logger.debug do "Cree migracion que incluya add_column :#{tabla2}, :#{nom_arch}_id, :integer add_foreign_key :#{tabla2}, :#{nom_arch}, column: #{nom_arch}_id" end if File.readlines("app/models/#{tabla2}.rb").grep(/#{nom_arch}/).empty? Rails.logger.debug do "Aregue a 'app/models/#{tabla2}.rb' belongs_to :#{nom_arch}, class_name: \"#{nom_clase}\", foreign_key: \"#{nom_arch}_id\", validate: true" end Rails.logger.debug do "Aregue a 'app/models/#{nom_arch}.rb' has_many :#{tabla2}, class_name: \"#{tabla2.capitalize}\", foreign_key: \"#{nom_arch}_id\", validate: true" end end Rails.logger.debug do "Modifique la vista que edita el modelo agregando <%= f.association :#{nom_arch}, collection: ::#{nom_clase}.habilitados, include_blank: false, label_method: :nombre, value_method: :id %> " end Rails.logger.debug do "Modifique funcion estilo #{tabla2}_params en " \ "el controlador de la vista cambiada para agregar #{nom_arch}" end else Rails.logger.debug { "Para asociar #{tablabasica} con has_many en #{tabla2}:" } Rails.logger.debug do "Cree migracion que incluya create_join_table :#{tabla2}, :#{tablabasica}, table_name: :#{tabla2}_#{tablabasica} add_foreign_key :#{tabla2}_#{tablabasica}, :#{tablabasica}, column: :#{tabla2}_id add_foreign_key :#{tabla2}_#{tablabasica}, :#{tabla2}, column: :#{tabla2}_id, primary_key: :id" end Rails.logger.debug("Y de requerirse migre datos existentes") Rails.logger.debug("Cree modelo para tabal combinada con") Rails.logger.debug do " class AcompanamientoCasosjr < ActiveRecord::Base belongs_to :sivel2_sjr_casosjr, class_name: 'Sivel2Sjr::Casosjr', foreign_key: 'sivel2_sjr_casosjr_id', validate: true belongs_to :acompanamiento, class_name: '::Acompanamiento', foreign_key: 'acompanamiento_id', validate: true end " end Rails.logger.debug("Agregue titulos por presentar en vistas en config/locale/es.yml") if File.readlines("app/models/#{tabla2}.rb").grep(/#{nom_arch}/).empty? Rails.logger.debug do "Aregue a 'app/models/#{tabla2}.rb' has_many :#{tabla2}_#{tablabasica}, class_name: \"::#{tabla2}#{nom_clase}\", foreign_key: \"#{tabla2}_id\", validate: true has_many :#{tablabasica}, through: :#{tabla2}_#{tablabasica}, class_name: \"::#{nom_clase}\" " end end Rails.logger.debug do "Modifique la vista que edita el modelo #{tabla2} agregando <%= f.association :#{nom_arch}, collection: ::#{nom_clase}.habilitados, include_blank: false, label_method: :nombre, value_method: :id %> " end Rails.logger.debug do "Modifique funcion estilo #{tabla2}_params en " \ "el controlador de la vista cambiada para agregar #{nom_arch}_ids => []" end end Rails.logger.debug { "Modifique la vista show de #{tabla2} y otras que la presenten" } # genera_test if options.test # genera_factory if options.factory # genera_asociacion if tabla2 != '' end |