【发布时间】:2014-05-02 23:33:59
【问题描述】:
我发出如下查询,准确检索 0 或 1 条记录:
car = Car.where(vin: '1234567890abcdefg')
返回的当然是长度为 1 的汽车列表。所以我最终在查询末尾添加了.first:
car = Car.where(vin: '1234567890abcdefg').first
似乎在 Rails 中应该有更好的方法。是否存在像 .onlyOne 这样的东西,它只会返回一个 Car,如果超过 1 个则抛出异常?
car = Car.where(vin: '1234567890abcdefg').onlyOne
或
car = Car.onlyOne(vin: '1234567890abcdefg')
【问题讨论】:
-
car = Car.where(vin: '1234567890abcdefg').first!会在找不到任何东西时抛出异常。
标签: ruby-on-rails activerecord ruby-on-rails-4 rails-activerecord