Dod*_*nas 1 ruby ruby-on-rails
我有一个在Rails中运行的查询:
me = User.find(1)
my_groups = me.groups
Run Code Online (Sandbox Code Playgroud)
my_groups 可能会返回多行.
有没有办法使用一种方法来确定是否一个快速和肮脏的方式my_groups或me.groups大于一?
也许像是my_groups.greater_than_one? 不是,你会建议在确定查询是否返回> 1行?
me.groups本质上是另一个与User关联的表.它基本上显示了特定用户所属的"组".
没有必要的方法,你可以简单地比较size:
me.groups.size > 1
Run Code Online (Sandbox Code Playgroud)
但是,如果有多个记录,ActiveRecord :: Relation确实many?会返回true.来自文档:
true如果集合具有多个记录,则返回.相当于collection.size > 1.Run Code Online (Sandbox Code Playgroud)class Person < ActiveRecord::Base has_many :pets end person.pets.count #=> 1 person.pets.many? #=> false person.pets << Pet.new(name: 'Snoopy') person.pets.count #=> 2 person.pets.many? #=> true
如果你只关心是否有任何元素(即> 0)any(这也是Ruby核心的Enumerable的一部分).
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |