我正在寻找方法限制我的用户每天发帖次数不超过两次,并且每周发帖次数不超过 5 个。我有一个用户和帖子模型/控制器。
我一直在研究这些问题,但它们并不完全是我想要的。
Rails 3.1 限制用户创建的对象
如何验证 Rails 中的时间?限制用户每天发帖一次
来自 KandadaBoggu 的代码出现错误 @ 20:44 13/03/2012
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)