【发布时间】:2020-09-05 05:22:40
【问题描述】:
是否可以告诉 Rails 使用 JSON 列作为关系的“后端”?
我有一个 Article 模型,它将评论 ID 存储在 JSON 列 Article#comment_ids:
class Article < ApplicationRecord
def comments
Comment.where(id: comment_ids)
end
end
class Comment < ApplicationRecord
end
Article.first.comment_ids
=> [1,2]
Article.first.comments
=> [#<Comment:0x00007f4d7cff7c08 id: 1>,#<Comment:0x00007f4d7cff7c08 id: 2>]
有什么办法可以替换这段代码
def comments
Comment.where(id: comment_ids)
end
有一个
has_many :comments # somehow reference #comment_ids
背景:我的应用程序的其他部分使用预加载和article.association(:comments).loaded? 之类的东西。而且因为它不是 rails 关系,所以这不适用于 cmets 关系。
【问题讨论】:
-
guides.rubyonrails.org/… 这对你有帮助吗?
标签: mysql ruby-on-rails mysql-json