在我的Rails 3应用中,我有两个模型,Profile
和Item
。每个人都与另一个人有HABTM关系。在我的Profile模型中,我有一个方法wish_items
,它创建一个同名的数组(wish_items)。如果项目包含“愿望”类别,则会将其添加到该配置文件的wish_items
数组中。
出于这个问题的目的,我说有一个名为“phone”的项目,其中包含“愿望”类别。我想要做的是能够找到并统计所有在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 :(得分:0)
上述情况失败了,因为我没有电话报价。简单。以下工作:
Profile.all(:include => :items, :conditions => ["items.name = ?", "phone"])
多元化:
<%= pluralize(Profile.all(:include => :items, :conditions => ["items.name = ?", "phone"]).count, "person") %>