¿Cómo validar una publicación por día?

Estoy tratando de crear una validación para garantizar una publicación por día, las 24 horas a partir de las 00:00. ¿Cómo se puede hacer esto en Rails por favor?

Hice lo siguiente, pero no estoy seguro de dónde colocar el método de today . Alternativas más simples son muy apreciadas.

 def today where(:created_at => (Time.now.beginning_of_day..Time.now)) end 

Luego agregué una validación al modelo de artículo:

 validate :time_limit, :on => :create 

y definido time_limit en el mismo modelo como asi:

 def time_limit if user.articles.today.count >= 1 errors.add(:base, "Exceeds daily limit") end 

Pero sigo recibiendo un error de “ningún método” en la acción de crear.

 undefined method `today' 

No estoy muy seguro de dónde poner este método.

Deberías usar ámbitos para eso:

 class Article scope :today, -> { where(:created_at => (Time.now.beginning_of_day..Time.now.end_of_day)) } end 

http://apidock.com/rails/ActiveRecord/NamedScope/ClassMethods/scope

Ese error se debe a que today es un método de ejemplo de modelo, no un ámbito.

Lo que necesitas es scope :

  scope :today, lambda{ where(:created_at => (Time.now.beginning_of_day..Time.now)) }