0

我正在尝试创建一个有点不同寻常的范围。我有一个处理网站的应用程序。有一个名为“sites”的模型,它有_many 个页面。站点模型有一个称为主页的列。每个站点的页面列表包含主页和附加页面(关于、定价等)。

我想为页面模型创建两个范围。一个标识主页,另一个标识所有附加页面。我在想这样的事情。

my_homepage =  Site.find_by_id(self.site_id).homepage
scope :homepage, where(url: my_homepage) 
scope :additional_pages, where(url != my_homepage)

不幸的是,这些都不起作用。事实上,当我尝试在控制台中与它们一起玩时,我做不到。我得到这个错误。

(Object doesn't support #inspect)

有没有更聪明的方法来做到这一点?

4

1 回答 1

1

尝试这个 :

scope :homepage, joins(:sites).where("sites.homepage = pages.url") 
scope :additional_pages, joins(:sites).where("sites.homepage <> pages.url")
于 2012-07-27T18:13:50.517 回答