0

ここに私のモデルがあります。

ユーザー unit_id

ユニット block_id

ブロック postalcode_id

郵便番号 neighbourhood_id

ご近所

関係はすべてのものであり、上は下に属しています

これは私の現在の index.html.erb ファイルです。各地域のユーザー数を出力したいと考えています。

<% provide(:title, 'Neighbourhoods') %>
<ul class="thumbnails">
    <% @neighbourhoods.each do |neighbourhood| %>
    <li class="span3">
        <div class="thumbnail">
            <div style="position:relative;">
                <%= link_to "Join", '#', class: "btn-join" %>
                <%= image_tag(neighbourhood.name+".jpg", alt: neighbourhood.name) %>
            </div>
            <h2 style="margin-bottom:0px"><%= neighbourhood.name.titleize %></h2>
            <% neighbourhood.postalcodes.each do |postalcode| %>
            <%= postalcode.blocks.map(&:block).join(", ") %>
            <% end %>
            <br>
            <%= neighbourhood.streetname.titleize %>
        </div>
    </li>
    <% end %>
</ul>

前もって感謝します。

4

2 に答える 2

0

近所のhas_manyユーザーを想定すると、次のようになります。

<%= neighbourhood.users.size %>

カウントは比較的遅いオプションであることに注意してくださいcounter_cache.

class User < ActiveRecord::Base
  belongs_to :neighborhood, :counter_cache => true
end

次に、移行で:

add_column :neighborhoods, :users_count, :integer, :default => 0
于 2012-10-17T05:03:20.770 に答える
0

非常に深くネストされた関連付けのセットのようです。モデルをもう一度見て、少し「トリミング」できるかどうかを確認してください。たぶん、User と Unit モデルを用意してから、ブロック、郵便番号、近隣を Unit.block や Unit.postal_code などを実行できる Unit に追加するようなものです。

現在の構成で言われていること (has_many/belongs_to が正しく関連付けられていると仮定) では、次のようなことができるはずです。

Neighbourhood.postal_code.block.unit.users.count

幸運を!

于 2012-10-18T12:44:54.490 に答える