Rails 4验证了不推荐使用哈希范围的唯一性

mar*_*cks 8 ruby-on-rails

在Rails 3.2中我有这样的语法:

validates_uniqueness_of :sport_name, :scope => :sports_org_id
Run Code Online (Sandbox Code Playgroud)

这在rails 4中已被弃用,但我无法弄清楚新的语法.我想验证数据字段的存在性和唯一性.

m_x*_*m_x 19

这个怎么样 ?

validates :sport_name, uniqueness: {scope: :sports_org_id}, presence: true
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Rails指南.您的语法可以从rails 2开始!

编辑

您现在也可以使用该allow_blank选项而不是在线验证,这样可以获得更好的错误消息:

validates :sport_name, uniqueness: {scope: :sports_org_id, allow_blank: false}
Run Code Online (Sandbox Code Playgroud)