我有一张很标准的Preferences
桌子。我想列出其中每条记录的所有真正布尔值。我该怎么做呢?我知道这Preference.column_names
会给我一切,但我需要每条记录的特定true
设置。任何的想法?就像是
@preference.column_names do |c|
c if c = true
end
谢谢!
我有一张很标准的Preferences
桌子。我想列出其中每条记录的所有真正布尔值。我该怎么做呢?我知道这Preference.column_names
会给我一切,但我需要每条记录的特定true
设置。任何的想法?就像是
@preference.column_names do |c|
c if c = true
end
谢谢!
这是使用属性名称和值遍历对象属性的一般想法。您是否必须仅过滤布尔字段?还是所有字段都是布尔值?
@preference.attributes.each do |attr_name, attr_value|
"#{attr_name} is #{attr_value}" if attr_value == true
end
首先你需要知道布尔列,这样的东西应该给你他们的名字:
booleans = Model.columns.select { |c| c.type == :boolean }.map(&:name)
然后,您可以使用send
基于名称提取值,一个简单的“是它true
”测试负责其余部分:
trues = booleans.select { |name| @preference.send(name) == true }