Un pequeño ejemplo de ¿Como utilizar DELEGATORS en Rails?

Un pequeño ejemplo de ¿Como utilizar DELEGATORS en Rails?

Partiendo de la siguiente Relacion:


class User < ActiveRecord::Base
   has_many :retrospectives
end

En nuestra clase model retrospective.rb


class Retrospective < ActiveRecord::Base

   belongs_to :user

end


En nuestro controlador queremos utilizar algo como lo siguiente


class PageController < ApplicationController

  def show
    if current_user
      @retrospectives = current_user.retrospectives_last_created
    end
  end

end

Entonces para eso tenemos que agregar a nuestro model user.rb


#----------------------------
 # DELEGATORS
 #----------------------------
 delegate :last_created, :last_updated, to: :retrospectives, prefix: true

Con lo cual nuestra clase model retrospective.rb queda de la siguiente manera:


class Retrospective < ActiveRecord::Base
   belongs_to :user
  class << self

    def last_updated
      order('updated_at DESC')
    end
  end
end

No Comments

Post A Comment