gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中验证时间?限制用户每天发帖一次

转载 作者:行者123 更新时间:2023-12-04 05:49:13 25 4
gpt4 key购买 nike

我试图将用户的帖子限制为每天一次,我正在考虑检查 Time.now - last_post_time 是否 <(一天中的第二个),但这会强制每个帖子之间有 24 小时的时间间隔。

我想要做的是只允许一个月内每天发一个帖子,所以如果用户在 3 月 28 日发帖,他直到 29 日才能再次发帖。但如果他在 3 月 28 日晚上 10 点发帖,他可以在 3 月 29 日凌晨 12:01 再次发帖。

我该怎么做?

编辑:

这是我的posts_controller,我能得到一些关于如何重构它的帮助吗?

def create
@post = current_user.posts.build(params[:supportpost])
if @post.save
flash[:success] = "Your post was created!"
redirect_to root_path
else
@feed_items = []
render 'pages/home'
end
end

我正在尝试这样的事情,但肯定是错误的:
  def create
post = @user.posts.find(:first, :conditions => ["STRFTIME('%d', created_at) = ?", Date.today.day])
if post
@post = current_user.posts.build(params[:supportpost])
if @post.save
flash[:success] = "Your post was created!"
redirect_to root_path
else
@feed_items = []
render 'pages/home'
end
end

最佳答案

我可能会在 Post 模型的验证中添加此检查。也许是这样的:

class Post < ActiveRecord::Base
...

validate :date_scope

private
def date_scope
if Post.where("user_id = ? AND DATE(created_at) = DATE(?)", self.user_id, Time.now).all.any?
errors.add(:user_id, "Can only post once a day")
end
end
end

关于ruby-on-rails - 如何在 Rails 中验证时间?限制用户每天发帖一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5467638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com