我有两张桌子
1)属性:字段是id,name,properties_type,category_id
2)管理员:字段ID,名称,移动设备,category_id
我想编写一个活动记录来列出所有属性,其中属性表中的category_id和Admins表中的category_id是相等的,根据current_user_id
我通过以管理员身份登录列出此属性列表。
模型关系
class Category < ActiveRecord::Base
has_many :admins,dependent: :destroy
has_many :properties,dependent: :destroy
end
class Admin < ActiveRecord::Base
belongs_to :category
has_many :properties
end
class Property < ActiveRecord::Base
belongs_to :admin
belongs_to :category
end
我写了这样的活动记录,但是我得到了错误, 任何人都可以建议我这个解决方案
@properties= Property.where('properties.category_id=?','admins.category_id=?').and('admins.id=?',current_user.specific.id)
答案 0 :(得分:1)
通过您的assosciation,您可以使用子查询将结果放在一行
@properties = Property.where(category_id: Admin.select("category_id").where(id: current_user.id))
&#13;
答案 1 :(得分:1)
根据我的理解,current_user
是Admin
。因此,您可以category_id
current_user
进行搜索。如果我是对的,试试这个
@properties = Property.where(category_id: current_user.category_id)