首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有自引用的Rails4多态

具有自引用的Rails4多态
EN

Stack Overflow用户
提问于 2014-09-18 11:14:08
回答 1查看 49关注 0票数 0

我对Rails很陌生,所以这个问题可能有点奇怪.我正在构建一个系统,其中我希望Users能够离开Feedback的其他用户,但也涉及到他们从他们购买的Item。想想eBay的反馈,他们会问:你对这个项目满意吗?你能推荐和乔一起工作吗?

反馈模型显然是多态的,因为它可以是UserItem类型。

我拥有的是:

代码语言:javascript
复制
class User
    has_many :feedbacks, as: :feedbackable
end

class Item
    has_many :feedbacks, as: :feedbackable
end

class Feedback
    belongs_to :feedbackable, polymorphic: true
end

我的问题是,用户是反馈的创造者,但也是相同反馈的接收者(反馈)……

我怎样才能实现这样的目标:

代码语言:javascript
复制
class User
   has_many :feedbacks  # feedback.user
   has_many :feedbacks, as: :feedbackable   #feedback.feedbackable.type_id
end

从这个意义上说,我可以得到用户A留给其他用户和项的所有反馈,也可以得到其他用户留给用户A的所有反馈

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 14:04:31

我不确定回答我自己问题的策略,但我会把这个答案留给任何处理同样疑问的人.

对于你们中那些开始阅读STI或多到多:通过等等的人来说,实现这一点似乎要容易得多。

最后,我在用户模型中执行了以下操作:

代码语言:javascript
复制
has_many :feedbacks
has_many :feedbacks_received, as: :feedbackable, :class_name => "Feedback"

现在我可以做:

user.feedbacks并获取该用户创建的所有反馈(关于项或用户)

user.feedbacks_received并获取其他用户对该用户的反馈信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25911164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档