ruby-on-rails – rails 3.2具有可选参数的范围
发布时间:2020-12-17 02:43:56 所属栏目:百科 来源:网络整理
导读:我有以下范围来查找属于特定客户的产品. scope :client,lambda {|client| where("client_id = ?",client) } 并且可以被称为 Product.client(parameter) 如果没有给出客户ID,我有什么方法可以声明我的范围返回所有产品?这是不应该使用范围的情况吗? 解决方
我有以下范围来查找属于特定客户的产品.
scope :client,lambda {|client| where("client_id = ?",client) } 并且可以被称为 Product.client(parameter) 如果没有给出客户ID,我有什么方法可以声明我的范围返回所有产品?这是不应该使用范围的情况吗? 解决方法
您应该使用除范围之外的其他内容,因为您确实希望在两种情况之间切换(指定/不指定客户端ID)并以不同方式响应.这个怎么样:
class Product < ActiveRecord::Base def self.by_client(client) if client where(client_id: client) else all end end end 此代码将始终返回类似于作用域输出的内容,因此您可以使用它进行链接等. 请注意,这也整理了代码,不需要特定的范围.并确保你实际上并不意味着拥有has_many:产品的客户端… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |