我有一个范围,它使用where子句将结果缩小到记录定义特定参数的记录。
在Post.rb
scope :nav, where( "priority IS NOT NULL" )
我使用此范围填充特定帖子的网站导航。但是,索引控制器操作需要省略这些记录。有没有办法可以使用相同的命名范围从索引操作中省略这些记录?或者我是否需要编写与第一个范围相反的第二个范围?
def index
@posts = Post.order('created_at DESC')
end
答案 0 :(得分:1)
在Post.rb
scope :nav, ->(not_null = true) { not_null ? where.not(priority: nil) : where(priority: nil) }
在控制器中:
def index
@posts = Post.order(created: :desc).nav(false)
end
在Rails 4中工作。