如何将所有布尔值列表设置为true?

时间:2016-04-29 00:34:28

标签: ruby-on-rails-4

我有一个名为History的表模型,它的所有属性都是boolean。 如何只选择设置为true的属性?

我试过

History.select {|h| h == true}

我错过了什么?

1 个答案:

答案 0 :(得分:0)

对于所有的全部为真的

boolean_columns = Model.columns.map(&:name) - %w(id created_at updated_at)
Model.where(boolean_columns.zip([true].cycle).to_h)

属性仅适用于实例,在这种情况下,您可能只想查询它。

对于一个人:

Model.first.attributes.select { |_, v| v == true }

我做v == true而不是v的原因是因为你想要显式布尔值,不一定是真的。