带参数的Railsvalidation

在我的下面的代码中,我试图调用url_exist? 作为网站的validation,但我不确定如何调用url_exist? 与网站的价值。 这似乎是一个愚蠢的问题,但我无法弄清楚。

模型

 validates :website, presence: true, if: :url_exist? ... def url_exist?(url_string) url = URI.parse(url_string) puts url binding.pry req.use_ssl = (url.scheme == 'https') req = Net::HTTP.new(url.host, url.port) path = url.path if url.path.present? req.request_head(path || '/') res.code != "404" # false if returns 404 - not found rescue Errno::ENOENT false # false if can't find the server end 

您已经知道website的价值,因为它是对象的属性之一。 那么,只需在你的url_exist?引用它url_exist? function。

 validates :website, presence: true, if: :url_exist? # ... def url_exist? url = URI.parse(self.website) puts url # ... end 

我还应该注意到,在你发布的代码片段的末尾,你似乎错过了一些代码,所以现在你的url_exist? 函数总是返回false。