计算db中具有另一个表id的记录数?

时间:2013-09-10 15:05:38

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

我正在开发一个小应用程序,我正在努力弄清楚,编写什么代码并进行研究我无法做到正确。

我的应用程序有“分档”,它们是标签,我有一个分区表,其中包含:id,:label_name等...每个bin都有一个帖子。 DB有一个表格帖子:id,:post_name,我创建了:bin_id。我目前正在努力实现的目标,在我的设计中...每个bin显示它在侧边栏的主页上有多少帖子(例如:News Bin --- 0,Sports Bin ---- 10,Art Bin - - 12等等..)

以下是我在垃圾箱结构主页上的内容;

<% @bins_list.each do |bin| %>
    <div class="label %> active<% end %>"><span class="name">
</span>
<% else %><span class="num"><%= @bins.size %></span><% end %></div>
<% end %>

带有@ bin.posts.size的“class =”num“行应该通过遍历post表并查找bin_id列匹配bin id的所有帖子来显示分配给该bin id的帖子数量在上面的代码中。

因此每个bin都有自己的ID并保存在DB中...用户可以将帖子分配给该Bin ID,帖子会将bin id保存在Post表DB中的bin_id列下。

我做过了;     class Bin&lt;的ActiveRecord :: Base的        has_many:帖子     端

class Posts < ActiveRecord::Base
   belongs_to :bin
end

我已经在上面的视图代码中尝试过了;

<span class="num"><%= @bin.posts.size %></span>

也试过了;

<span class="num"><%= @posts.where(:bin_id == :bin).size %></span>

也试过了;

<span class="num"><%= @posts.size %></span>

class HomeController < ApplicationController
    def index
       @posts = Post.find(params[:bin_id])
    end
end

然而,这不起作用,在终端中,我得到的“帖子”没有被定义为类#blah blah ...我认为模型中的“has_many”和“belongs_to”应该相关吗?我想也有点困惑如何找到Bins ID并连接它并搜索Post以查看Bins ID是否匹配,然后计算所有匹配该ID并显示计数的“真实”帖子。

任何帮助我如何修改我的代码并构建它以使其工作?

1 个答案:

答案 0 :(得分:0)

尝试:     &lt;%= bin.posts.size%&gt;