• [^] # Re: Doctrine2

    Posté par (site web personnel) . En réponse à la dépêche En vrac : Doctrine 2, MySQL 5.5 et VimGolf. Évalué à 3.

    Si je comprends bien l'exemple, l'équivalent en Rails (ActiveRecord) serait :


    # Le modèle est décrit dans le fichier app/models/user.rb
    class User < ActiveRecord::Base
    # Validations
    validates :email, :uniqueness

    # Lifecycle callbacks
    before_save :do_stuff_on_pre_persist
    before_save :do_another_stuff_on_pre_persist_too
    after_save :do_stuff_on_post_persist

    # Associations
    has_one :address, :dependent => :destroy
    has_many :phone_numbers
    has_ad_belongs_to_many :groups
    end



    # La création de la table SQL se fait avec une migration (fichier db/migrate/_create_users.rb)
    class CreateUsers < ActiveRecord::Migration
    def self.up
    create_table :users do |t|
    t.string :name, :limit => 50, :null => false
    t.string :email, :limit => 32, :null => false
    end

    # Indexes
    add_index :users, [:name, :email], :unique => true
    add_index :users, :name # Cet index est redondant, mais je l'ai gardé car il était dans l'exemple de départ
    add_index :users, :email
    end

    def self.down
    drop_table :users
    end
    end