gpt4 book ai didi

ruby-on-rails - validates_uniqueness_of ...限制范围 - 如何限制某人创建一定数量的条目

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:25 25 4
gpt4 key购买 nike

我有以下代码:

class Like < ActiveRecord::Base
belongs_to :site
validates_uniqueness_of :ip_address, :scope => [:site_id]
end

这限制了一个人基于远程 ip 请求多次“喜欢”一个站点。本质上,当有人“喜欢”一个站点时,会在 Likes 表中创建一条记录,我使用一个隐藏字段来请求并将他们的 IP 地址传递给 like 表中的 :ip_address 列。使用上面的代码,我将用户的每个 IP 地址限制为一个“喜欢”。我想将其限制为某个数量,例如 10。

我最初的想法是做这样的事情:

validates_uniqueness_of :ip_address, :scope => [:site_id, :limit => 10]

但这似乎行不通。这里有一个简单的语法可以让我做这样的事情吗?

最佳答案

你可以试试这个:

class Like < ActiveRecord::Base
validates_each :ip_address do |row, attr, value|
m.errors.add :ip_address, 'Too many likes' unless row.like_count < 10
end

def like_count
Like.count(:conditions => {:ip_address => ip_address, :site_id => site_id})
end
end

注意:

I use a hidden field to request and pass their ip address to the :ip_address 
column in the like table.

您这样做是为了获取客户端的 IP 地址吗?您可以从请求对象中获取 IP 地址。

例如:在您的 Controller / View 中:

request.remote_ip

关于ruby-on-rails - validates_uniqueness_of ...限制范围 - 如何限制某人创建一定数量的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2816069/

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