我是Ruby的新手,我曾尝试过一些在线教程,但有些东西我想检查,因为我似乎无法使它工作而且我现在迷失了。
我已经使用Ruby建立了一个数据库作为注册网站。这是一个简单的单线数据库,我只使用ruby创建的默认应用程序控制器。现在我的问题。
我想计算我的一个数据库列中的所有条目,它只有两个静态条目,(是/否),我希望将YES计为2个条目,NO计为1个条目并显示总计数index.html.erb,这可能吗?
提前致谢
编辑...
表= mydb 专栏=回答
我在控制器中使用了以下几行,但是当我运行应用程序时,我正在进行动态常量分配。
NO_WEIGHT = 1
YES_WEIGHT = 2
yes_count = ModelName.where(:column_name => "YES").count * YES_WEIGHT
no_count = ModelName.where(:column_name => "NO").count * NO_WEIGHT
有了这个错误,我用
替换了这些行@NO_WEIGHT = 1
@YES_WEIGHT = 2
@yes_count = mydb.where(:answer => "YES").count * @YES_WEIGHT
@no_count = mydb.where(:answer => "NO").count * @NO_WEIGHT
有了这个,我检查了日志,我看到了这个
Select Count(*) from mydb where mydb.answer = 'YES'
Select Count(*) from mydb where mydb.answer = 'NO'
没有预期的“* @YES_WEIGHT”作为乘数。
此外,我想尝试使用以下行在index.html上显示结果:
<p> YES count is <% @yes_count %> </p>
但遗憾的是没有输出。
我只想检查如何将动态常量修复为静态变量,以使我的查询按预期工作和显示。
感谢所有帮助
答案 0 :(得分:0)
如果你使用ActiveRecord,你需要这样的东西(表是用户,是/否在状态栏中):
Users.find(:all,
:select => "count(*) as status_count",
:group => "status"
)
答案 1 :(得分:0)
如果我理解你的问题,可以这样:
NO_WEIGHT = 1
YES_WEIGHT = 2
yes_count = ModelName.where(:column_name => "YES").count * YES_WEIGHT
no_count = ModelName.where(:column_name => "NO").count * NO_WEIGHT