0

尝试在 google 上搜索所有内容,但在 Ruby on rails 中找不到类似于 CakePHP 的 beforeFind() 回调的任何内容。

所以我目前有一个新闻模型。

    class News < NewsRecord
    end

新闻模型的 find 方法已经在站点周围的许多地方的控制器中使用。我现在向新闻模型添加了一个 publish_web(boolean) 列。

我想要在此新闻模型中添加一个条件,该条件将添加到此模型上发生的所有查找条件中。所以是这样的:

    class News < NewsRecord
        :conditions => {:published_web => true}
    end
4

1 回答 1

0

您可能想使用范围,一种方法是

class News < NewsRecord
  scope :published, where(published_web: true)
end

这将允许您执行News.published并将返回符合范围内条件的所有记录。

另一种方法是设置 a default_scope,它将用 中News的条件“替换”表中的所有获取default_scope(请记住,这可能是“危险的”)。

class News < NewsRecord
  default_scope where(published_web: true)
end
于 2013-09-18T14:14:44.647 回答