Uma fotografia da Lua em quarto crescente Tirei essa foto do quintal da minha casa. Lua em quarto crescente.

Lua em quarto crescente ocorre quando o ângulo Terra - Lua - Sol é aproximadamente reto, de modo que vemos apenas cerca da metade do disco lunar, no período em que a parte iluminada está em crescimento. No hemisfério norte, a metade direita do disco está iluminada, enquanto no hemisfério sul, a metade esquerda do disco ilumina-se durante esta fase. Fonte: Wikipedia

Como usar o método delegate no Rails

Uma coisa interessante que você pode fazer, quando estiver usando o Rails, é usar o método delegate para delegar métodos de um model para outro. Isso pode ser útil quando você tem relações de modelo complexas e deseja evitar acessar vários níveis de associação. Por exemplo, imagine que você tem um modelo de usuário chamadoUser e outro modelo chamado Company. Cada usuário tem uma empresa e você deseja ser capaz de acessar o nome da empresa de um usuário. Sem o uso de delegate, você teria que fazer algo como user.company.name. Com delegate, você pode fazer algo como:

class User < ApplicationRecord
  belongs_to :company
  delegate :name, to: :company, prefix: true
end

Agora você pode chamar user.company_name e obter o nome da empresa.

user = User.first

user.company_name
# => "Acme"

O método delegate aceita vários argumentos, mas os mais importantes são:

  • to: o nome do modelo para o qual você deseja delegar
  • prefix: um prefixo opcional para o método delegado

Você pode ler mais sobre o método delegate na documentação do Rails.

Referências