Ruby on rails Rails有许多&;通过查询

Ruby on rails Rails有许多&;通过查询,ruby-on-rails,has-many-through,Ruby On Rails,Has Many Through,我使用的是Rails 2.3,我有3个表,用于管理用户对建筑物的权限。mygroups表是用户和建筑物所属组的列表。mygroupsbuildings是建筑物及其关联组的列表。mygroupsusers是用户及其关联组的列表 create_table "mygroups", :force => true do |t| t.string "name" t.integer "user_id" t.string "user_name" t.integer "permi

我使用的是Rails 2.3,我有3个表,用于管理用户对建筑物的权限。mygroups表是用户和建筑物所属组的列表。mygroupsbuildings是建筑物及其关联组的列表。mygroupsusers是用户及其关联组的列表

create_table "mygroups", :force => true do |t|
  t.string   "name"
  t.integer  "user_id"
  t.string   "user_name"
  t.integer  "permissions"
end

create_table "mygroupbuildings", :force => true do |t|
  t.integer  "mygroup_id"
  t.integer  "building_id"
end

create_table "mygroupusers", :force => true do |t|
  t.integer  "mygroup_id"
  t.integer  "user_id"
  t.string   "user_name"
end
我想创建一个查询,以确定特定的用户id是否与特定的建筑id属于同一组

我已设置了以下关联:

class Mygroup < ActiveRecord::Base  
  has_many   :mygroupusers
  has_many   :mygroupbuildings
end

class Mygroubuilding < ActiveRecord::Base  
  belongs_to :mygroup
  has_many   :mygroupusers, :through => :mygroup
end

class Mygroupuser < ActiveRecord::Base
  belongs_to :mygroup
  has_many   :mygroupbuildings, :through => :mygroup
end
这给了我以下错误:

ActiveRecord::语句无效(Mysql::Error:on子句中的未知列“mygroups.mygroupid”:选择
mygroupusers
id
AS t0\u r0、
mygroupusers
mygroupid
AS t0\u r1、
mygroupusers
用户idAS t0\code>mygroupusersAS t0\u r3、
mygroupusers
de>作为t0\U r4,
mygroupusers
更新了作为t0\U r5,
mygroupbuildings
作为t1\U r0,
mygroupbuildings
mygroupbuildings
作为t1\u r1,
mygroupbuildings
作为t1\u r2,
mygroupbuildings
创建了作为t1\code>mygroupbuildings,
在(
mygroupusers
id
id
=
mygroups
mygroups\U id
)上(
mygroupbuildings
mygroupbuildings
id>)上的左侧外部连接
mygroupbuildings
)其中(mygroupbuildings.building_id='2'和mygroupusers.user_id='55'):

谢谢


Nick,

这是如何设置查询以返回包含查询的用户id和建筑id的组:

Mygroup.find(:all,
             :include => [:mygroupbuildings, :mygroupusers],
             :conditions => ["mygroupbuildings.building_id = #{building.id} AND mygroupusers.user_id = #{current_user.user_id}"])      
Mygroup.find(:all,
             :include => [:mygroupbuildings, :mygroupusers],
             :conditions => ["mygroupbuildings.building_id = #{building.id} AND mygroupusers.user_id = #{current_user.user_id}"])