У меня есть возможность найти продукт, принадлежащий конкретному клиенту.рельсы 3.2 Область применения с необязательным параметром
scope :client, lambda {|client| where("client_id = ?", client) }
и могут быть вызваны
Product.client(parameter)
Есть ли способ, я могу заявить свою область, чтобы вернуть все продукты, если идентификатор клиента не дано? Это ситуация, когда область применения не должна использоваться?
Я получаю слишком мало аргументов ошибку, если client_id не предусмотрено , Я что-то упускаю? – ctilley79
Вы должны называть его «клиентом», даже если «клиент» - «нуль». Если вы пытаетесь называть его «Product.by_client()» без аргумента, используйте вместо этого версию «Product.all» в этом коде! – Peter
Вы можете настроить метод 'self.by_client (client = nil)', так что вам не нужно указывать «клиент», но это кажется глупым для меня, потому что вы в конечном итоге должны иметь оператор 'if' где-то еще в вашем коде, чтобы решить, следует ли передавать «клиент» или нет. Если вы это делаете, просто позвоните в нужную вам версию. – Peter