Rails:访问使用column_names选择的列的值

时间:2012-10-23 01:43:41

标签: ruby-on-rails-3 hash

任何想法如何让它发挥作用?我不能为我的生活弄明白。

def get_prices(c)
  @print_prices = {}
  Billing.where(:name => c).column_names.each do |d|
    if d.match(/^print_/)
      @print_prices[d] = d.value
    end
  end
  return @print_prices
end

我不知道用d.value代替什么。

欢呼任何帮助。

1 个答案:

答案 0 :(得分:1)

以下代码将执行以关系形式返回的查询,并拒绝属性键值哈希中与给定正则表达式不匹配的所有项目,在本例中为/^print_/

def get_prices(c)
  Billing.where(:name => c).first.attributes.reject{ |i| !i.match(/^print_/) }
end

或者,它也可以写成:

def get_prices(c)
  Billing.where(:name => c).first.attributes.select{ |i| i.match(/^print_/) }
end