如何在验证中为特定列设置保留字?

时间:2013-07-16 05:10:37

标签: ruby-on-rails ruby-on-rails-3 validation

我有一个名为Community的模型,它有一个名为name

的列

我在子域中使用此name

例如,当用户访问http://rockstar.test-sample.com时,它会显示与http://test-sample.com/community/rockstar相同的内容

显然,此name不应为www

如果我在www说明这一点,我该怎样禁止models/community.rb

1 个答案:

答案 0 :(得分:6)

您可能希望花一些时间使用Active Record Validations Guide

  

2.4排除

     

此帮助程序验证属性的值不包含在给定集中。实际上,这个集合可以是任何可枚举的对象。

class Account < ActiveRecord::Base
  validates :subdomain, exclusion: { in: %w(www us ca jp),
    message: "Subdomain %{value} is reserved." }
end

所以你的模型中的这样的东西应该可以解决这个问题:

validates :name, :exclusion => { in: %w[www] }