2011-12-10 55 views
0

在我的Rails 3應用程序中,我有兩個型號,ProfileItem。每個人都有一個HABTM與另一個人的關係。在我的Profile模型中,我有一個方法wish_items,它創建了一個同名的數組(wish_items)。如果項目包含「希望」類別,則將其添加到該配置文件的wish_items陣列中。查找並計算對象名稱爲HABTM關係的所有配置文件

爲了這個問題的目的,說我有一個名爲「手機」與類別「願望」的項目。我想要做的是能夠找到並計算在其wish_items陣列中具有「手機」的所有配置文件,以便我可以在視圖中呈現該計數。我的代碼如下。

Profile.rb型號:

class Profile < ActiveRecord::Base 
    has_and_belongs_to_many :items 

    def wish_items 
    wish_items = Array.new 
    items.each do |item| 
     if item.category == "wish" 
     wish_items << item 
     end 
    end 
    return wish_items 
    end 
end 

Item.rb型號:

class Item < ActiveRecord::Base 
    has_and_belongs_to_many :profiles 
end 

我有一個連接表items_profiles這種關係。下面是遷移:

class CreateItemsProfiles < ActiveRecord::Migration 
    def self.up 
    create_table :items_profiles, :id =>false do |t| 
     t.references :item 
     t.references :profile 
    end 
    end 
... 
end 

我看到這個previous question和答曰一個嘗試,但得到了一個錯誤NameError: uninitialized constant phone。下面是我從那些試圖代碼:

Profile.all(:include => :items, :conditions => ["items.name = ?", phone]) 

具體來說,我把這些代碼如下所示:

<%= pluralize(Profile.all(:include => :items, :conditions => ["items.name = ?", phone])).count, "person") %> 

我怎樣才能做到這一點?

回答

0

以上是失敗的,因爲我沒有電話報價。簡單。以下工作:

Profile.all(:include => :items, :conditions => ["items.name = ?", "phone"]) 

與複數化:

<%= pluralize(Profile.all(:include => :items, :conditions => ["items.name = ?", "phone"]).count, "person") %> 
相關問題