我试图查找如何只获取评论的ID,这是Post的相关模型。
发布has_many评论
我通过Rails documentation找到了你可以使用.map方法来获取ID。
然而,对于它,我试着做了:
p = Post.find(1)
p.comment_ids #[1,2,3]
它有效!我无法在Rails文档的任何地方找到这种魔术方法。这是获得has_many关系ID的官方支持方式吗?
答案 0 :(得分:2)
请参阅has_many Association Reference:
当您声明has_many关联时,声明类会自动获得与该关联相关的16个方法:
其中包括:
collection_singular_ids
collection_singular_ids=ids
答案 1 :(得分:1)
如果你看一下has-many-association
的doco,你会找到详细的文档。
collection_singular_ids
:
...这些方法,集合被替换为作为has_many的第一个参数传递的符号,
collection_singular
被替换为该符号的单数化版本。
根据singularize
方法 -
comments.singularize # => comment
在您的情况下,collection_singular
已替换为comment
。这就是你获得comment_ids
方法的方法。
希望它能清除你。