在我的控制器中我有:
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错误。
答案 0 :(得分:7)
你真的需要一本关于Ruby的书,因为这非常简单。 #{...}
是一个插补器,仅对字符串和字符串有用。在该特定上下文之外,#
通常被解释为注释,并使该行的其余部分无效。一个正确的语法高亮编辑器将揭示这一点,甚至StackOverflow的代码高亮显示器也是如此。
您需要的是send
,如Domain.send(cc).count
。
答案 1 :(得分:2)
Domain.count(cc)
或
Domain.count(cc, :conditions => ["`#{cc}` IN NOT NULL OR `#{cc}` != ''"])