我有一个rails资源文档。
这些文档有一个名为author_ids
的属性,它是user_id
的数组。
示例:
@document.author_ids = [1,2,3,4]
我正在构建一个显示所有文档的仪表板。
def dashboard
@documents = Documents.all
end
我希望author_ids中的所有用户都能查看文档。 我想做类似下面的事情,在那里我搜索以查看current_user.id的值是否包含在Documents资源的author_ids数组中,并将这些文档列为@documents。
def dashboard
@documents = Document.all.where(:author_ids.include?(current_user.id))
end
我知道我不能打电话。包括?在Key(:author_ids)上,这是一个数组。我需要帮助迭代密钥中的每个值:author_id以检查current_user.id的值是否在:author_id数组中。
答案 0 :(得分:0)
我相信你一定有
class Document
has_many :document_authors
has_many :authors, through: :document_authors
然后这将返回预期的结果
def dashboard
@documents = Document.joins(:authors).where(authors: { id: current_user.id})
end