作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有以下代码:
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/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!