0
有时我不需要在我的应用程序中简单地验证smth,但也可以在验证之前/之后对其进行更改。 也就是说改变验证的地方在哪里?
class Channel < ActiveRecord::Base
validate :validate_url
...
private
def validate_url
url = "rtmp://#{url}" if server_url[0..6] != "rtmp://" #alter cause need this prefix
unless /rtmp:\/\/[a-z0-9]{1,3}\.pscp\.tv:80\/[a-z0-9]\/[a-z0-9]{1,3}\//.match url
errors.add(:url, "...")
end
end
end
或不服这样
class Channel < ActiveRecord::Base
validate :validate_restreams
...
private
def validate_restreams
self.left_restreams = self.left_restreams - self.restreams #to be sure there's no intersections
end
end
但我觉得这是不是这样的事情一个正确的地方,所以我需要知道什么是做正确的方式吗?
哦,这不是我希望得到答案。我的意思是改变价值不是你通常期望从验证者那里得到的,对吗?所以,也许还有另一种方法可以做到这一点?.. – Ngoral