# == Schema Information # Schema version: 13 # # Table name: networks # # id :integer(11) not null, primary key # name :string(64) not null # active :boolean(1) default(TRUE), not null # created_at :datetime # updated_at :datetime # class Network < ActiveRecord::Base # XXX : Argh avec :nullify il se passe exactement le contraire de l'effet attendu ! # * Avec ":dependent => :nullify" # - Quand on casse l'association d'un réseau et d'un panneau, Rails *supprime* le panneau # au lieu de mettre le champ network_id à NULL # - Mais Rails mets bien ce champ à NULL quand on fait "network.destroy" # * Sans ":dependent => :nullify" # - Quand on casse l'association, Rails mets à NULL le champ network_id, ce qui est bien, mais # c'est le contraire de ce que dit la doc ! # - Quand on fait "network.destroy", Rails ne met pas à NULL network_id. Mais heureusement # les FOREIGN KEYS de MySQL, qu'on a activé grâce à un plugin, corrige le problème. has_many :panels #, :dependent => :nullify STATES = [ [ "True", true ], [ "False", false ]] validates_presence_of(:name, :message => "must be given a value") validates_uniqueness_of(:name, :message => "is already use by another network") # Enregistrement d'une nouvelle révision des panneaux du mobilier à chaque enregistrement, # que ce soit "save" ou "update". def after_save panels.each do |p| PanelRevision.add(p) # Nouvelle révision du panneau end end end