Rails如何计算非空白的列?

时间:2011-11-07 18:44:56

标签: ruby-on-rails ruby ruby-on-rails-3

在我的控制器中我有:

def sedomain 
 country_codes = %w[ dk se com net org info ]
@domains = { }
 country_codes.each do |cc|
    @domains[cc.to_sym] = { :navn => ".#{cc}" }
  end
render :layout => 'page'
end

dk se com net org info是我的域表中的列。

我想算一下有多少不是空白的

我尝试过这样的事情:

def sedomain 
 country_codes = %w[ dk se com net org info ]
@domains = { }
 country_codes.each do |cc|
    @domains[cc.to_sym] = { :navn => ".#{cc}", :count => Domain.#{cc}.count }
  end
render :layout => 'page'
end

但是我得到了一个nomethod错误。

2 个答案:

答案 0 :(得分:7)

你真的需要一本关于Ruby的书,因为这非常简单。 #{...}是一个插补器,仅对字符串和字符串有用。在该特定上下文之外,#通常被解释为注释,并使该行的其余部分无效。一个正确的语法高亮编辑器将揭示这一点,甚至StackOverflow的代码高亮显示器也是如此。

您需要的是send,如Domain.send(cc).count

答案 1 :(得分:2)

Domain.count(cc)

Domain.count(cc, :conditions => ["`#{cc}` IN NOT NULL OR `#{cc}` != ''"])