ruby-on-rails - RoR 3 将用户限制为每天 2 个帖子

标签 ruby-on-rails time limit

我正在寻找限制我的用户每天发布两次以上并且每周发布不超过 5 个帖子的方法。我有一个用户和帖子模型/ Controller 。

我一直在研究这些问题,但它们并不是我想要的。

Rails 3.1 limit user created objects

How do I validate a time in Rails? Limiting a user to post once a day

错误 @ 20:44 13/03/2012 来自 KandadaBoggu 的代码

NoMethodError in PostsController#create

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

最佳答案

尝试这个:

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

关于ruby-on-rails - RoR 3 将用户限制为每天 2 个帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690228/

相关文章:

facebook - 使用 Facebook Graph API 时限制的最大值是多少?

ruby-on-rails - 是什么导致 Rails 应用程序中出现 'deadlock; recursive locking' 错误?

ruby-on-rails - Rails (ActiveRecord) 多对多表

SQL - 选择当前日期/时间之后的记录

Java将时间格式转换为整数或长

elasticsearch - 如何在Elasticsearch中获取返回结果的最大日期值

javascript - 在 Rails 中将字符串传递给 slim 模板内的 javascript 脚本

ruby-on-rails - 分配属性而不覆盖非零数据

javascript - 检查两次之间的时间间隔

mysql限制子查询