RoR 3 Ограничение пользователей до 2 сообщений в день - PullRequest
5 голосов
/ 13 марта 2012

Я ищу, чтобы запретить моим пользователям публиковать сообщения более двух раз в день и иметь не более 5 сообщений в неделю.У меня есть пользователи и сообщения модель / контроллер.

Я смотрел на эти вопросы, но они не совсем то, что я ищу.

Rails 3.1 ограничивают объекты, созданные пользователем

Как проверить время в Rails?Ограничение пользователя для публикации один раз в день

Ошибка @ 20:44 13/03/2012 с кодом от KandadaBoggu

NoMethodError in PostsController#create

undefined method `beginnning_of_day' for 2012-03-13 20:36:11 +0000:Time

1 Ответ

18 голосов
/ 14 марта 2012

Попробуйте это:

class User
  has_many :posts do

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

    def this_week
      where(:created_at => (Time.zone.now.beginning_of_week..Time.zone.now))
    end
  end    
end


class Post
  belongs_to :user

  validate :user_quota, :on => :create  

private 
  def user_quota
   if user.posts.today.count >= 2
     errors.add(:base, "Exceeds daily limit")
   elsif user.posts.this_week.count >= 5
     errors.add(:base, "Exceeds weekly limit")
   end
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...