0

我是 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>

但遗憾的是没有输出。

我只想检查如何将动态常量修复为静态变量,以便我的查询按预期工作和显示。

感谢所有的帮助

4

2 回答 2

0

如果您使用 ActiveRecord,您需要类似的东西(表是用户,是/否在状态列中):

Users.find(:all,
 :select => "count(*) as status_count",
 :group => "status"
)
于 2012-07-06T06:06:17.667 回答
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
于 2012-07-06T06:06:47.277 回答