rails 3.2具有可选参数的范围

cti*_*y79 4 ruby-on-rails

我有以下范围来查找属于特定客户的产品.

scope :client, lambda {|client| where("client_id = ?", client) }
Run Code Online (Sandbox Code Playgroud)

并且可以被称为

Product.client(parameter)
Run Code Online (Sandbox Code Playgroud)

如果没有给出客户ID,我有什么方法可以声明我的范围返回所有产品?这是不应该使用范围的情况吗?

Waw*_*Loo 6

它可以适用于范围

scope :client, lambda {|client =  nil| where("client_id = ?", client) unless client.nil? }
Run Code Online (Sandbox Code Playgroud)