0

我正在使用 Monologue gem(用于博客的 rails 引擎)并将其安装在我的应用程序中的 /blog 中,我想获取带有特定标签的帖子并将这些帖子显示在我的应用程序的主页上('/')。从rails c我可以通过do获得标签或帖子,Monologue::Tag但是Monologue::Post当我尝试这样做时Monologue::Tag.posts.published(比如他如何让应用程序获取源中特定标签的帖子)我得到“未定义的方法”。我知道这是因为它是一个引擎,我只是对引擎不够熟悉,不知道正确的语法是什么?任何帮助深表感谢!

4

1 回答 1

0

您正在尝试获取特定标签的帖子吗?那么,这不是你想要的:

Monologue::Tag.posts.published

您没有在此处指定任何标记,而是在调用方法postson Monologue::Tag,但这不是特定的标记实例,而是Monologue::Tag类。

一旦你有一个特定的标签,你就可以调用posts.published它,或者正如我在源代码中看到的,你甚至可以调用posts_with_tag

我想为了尝试这个,你可以得到第一个标签,然后调用方法:

Monologue::Tag.first.posts.published

编辑:

正如我在评论中告诉你的那样,你的问题是你试图将方法调用posts到一个不属于类Monologue::Tag(你的模型)但属于类ActiveRecord::Relation(对象的集合Monologue::Tag)的对象。做这些first工作,因为正在返回 . 找到的第一个实例where

如果您知道只想获取一个实例,另一种方法是调用find而不是where. 像这样:

Monologue::Tag.find_by(name: "Goals")

这将返回一个Monologue::Tag.

于 2014-08-23T21:22:58.310 回答