如何解决Rails has_many通过-通过关系查询
运行导轨6.0.3.2 /红宝石2.7.1
我有一个has_many直通关系,表现不符合预期。
我的模型如下:
class Item < ApplicationRecord
has_many :item_permissions
has_many :users,:through => :item_permissions
end
class User < ApplicationRecord
has_many :item_permissions
has_many :items,:through => :item_permissions
end
class ItemPermission < ApplicationRecord
belongs_to :items
belongs_to :users
end
现在,我要检索某个用户有权访问的所有项目:
u = User.find(1)
u.items
给我一个错误:
NameError (uninitialized constant User::Items)
我可以通过获取权限条目
u.item_permissions
是否可以通过某种方式为特定用户检索商品,或者以另一种方式来接收链接到特定商品的所有用户?
解决方法
错误在于您的belongs_to
声明中,因为两者都使用复数词而不是单数词来引用关联的模型。尝试:
class ItemPermission < ApplicationRecord
belongs_to :item # :item instead of :items
belongs_to :user # :user instead of :users
end
更多信息here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。