【问题标题】:Rails environment specific validationRails 环境特定验证
【发布时间】:2009-10-21 16:07:46
【问题描述】:

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

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

它工作正常。 我有一个 seed.rb 文件,它使用 Faker 为数据播种以生成 url 因此,在播种数据时,上述验证会尝试检查该假网址,我必须在播种数据时评论该验证。

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

【问题讨论】:

    标签: ruby-on-rails validation


    【解决方案1】:

    严格回答你的问题:

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

    但请不要这样做。它完全是 hack,我认为你最好找出一种更好的方法来生成测试 url,也许是一些简单的方法,比如:

    VALID_URLS = %w(http://google.com http://yahoo.com http://stackoverflow.com)
    
    ...
    
    Project.create(:uri => VALID_URLS.rand)
    

    ActiveSupport 向 Array 添加了一个 rand 实例方法,该方法返回一个随机元素。

    【讨论】:

    • 嗨,Ben,实际上为了测试,我正在使用 Fakeweb,它很棒。我担心的是,当我通过 rake db:seed 命令播种数据时。运行此命令时,我想填充开发环境数据库。没有别的出路吗??
    • 嗯,对不起,我想我不明白你的情况。你能发布你的seeds.rb吗?或者多解释一下?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多