Это моя модель Her ORM
module App
module API
class Period
include Her::Model
collection_path 'api/clients/:client_acronym/periods'
parse_root_in_json true, format: :active_model_serializers
attributes :begins_on, :ends_on, :stat_billed_incidents
scope :begins, ->(date) { where(begins_on: date) }
scope :ends, ->(date) { where(ends_on: date) }
scope :for_client, ->(acronym) { where(client_acronym: acronym) }
belongs_to :client
end
end
end
И я могу сделать звонок:
App::API::Period.for_client('LC').all.map(&:dup)
=> [#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2006-01-01" ends_on="2009-12-31" stat_billed_incidents=1>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2010-01-01" ends_on="2011-12-31" stat_billed_incidents=369>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2012-01-01" ends_on="2012-12-31" stat_billed_incidents=714>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2013-01-01" ends_on="2013-12-31" stat_billed_incidents=1104>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2014-01-01" ends_on="2016-12-31" stat_billed_incidents=12>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2017-01-01" ends_on="2019-01-01" stat_billed_incidents=36>,
#<App::API::Period(<unknown path, missing `client_acronym`>) begins_on="2019-01-10" ends_on="2020-01-01" stat_billed_incidents=7>]
Путь на сервере хорошо создан:
Started GET "/api/clients/LC/periods?client_acronym=LC"
за исключением того, что повторяется client_acronym, если я делаю запрос без использования областей, я должен использовать параметр options, но добавляется то же самое предупреждающее сообщение:
APP::API::Period.find('current', _client_acronym: 'LC')eriod.find('current', _client_acronym: 'LC')
=> #<APP::API::Period(<unknown path, missing `client_acronym`>) begins_on="2019-01-10" ends_on="2020-01-01" stat_billed_incidents=7>
снова URL был сформирован, и этоsi лучше, потому что не добавляет дополнительный параметр
Started GET "/api/clients/LC/periods/current
Я добавил к различным запросам, чтобы получить больше примеров, я попробовал разные убеждения, и всегда получаю один и тот же результат, правильный объект, но с этим предупреждением/ сообщение об ошибке, как этого избежать.