Rails环境特定验证

时间:2009-10-21 16:07:47

标签: ruby-on-rails validation

我在我的模型中使用了名为validates-existence-of-uri的插件,如下所示:

class Project < ActiveRecord::Base
  validates_uri_existence_of :link, :allow_redirect => false
end

它的工作和罚款。 我有一个seeds.rb文件,它使用Faker生成数据以生成网址 因此,在播种数据时,上述验证会尝试检查虚假网址,并在播种数据时对其进行评论。

所以,每次播种都会让我烦恼。有没有办法在Rails环境生产时执行验证?

1 个答案:

答案 0 :(得分:2)

严格回答你的问题:

if Rails.env.production?
  validates_uri_existence_of :link, :allow_redirect => false
end

但请不要这样做。这是一个彻头彻尾的黑客,我认为你最好找出一个更好的方法来生成测试网址,可能有些简单:

VALID_URLS = %w(http://google.com http://yahoo.com http://stackoverflow.com)

...

Project.create(:uri => VALID_URLS.rand)

ActiveSupport将一个rand实例方法添加到Array,返回一个随机元素。