Ruby on rails Rails有许多&;通过查询
我使用的是Rails 2.3,我有3个表,用于管理用户对建筑物的权限。mygroups表是用户和建筑物所属组的列表。mygroupsbuildings是建筑物及其关联组的列表。mygroupsusers是用户及其关联组的列表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
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}"])