Заголовок сообщения неправильно создал единственное число wage_schedules - PullRequest
0 голосов
/ 15 января 2019

Я использую Restangular с AngularJS 1.5 и Rails 5.x и имею следующее:

Restangular.all('wage_schedules').post($scope.wage_schedule).then (response) ->
  $state.go "wage_schedules"

Когда этот запрос попадает в мой бэкэнд Rails, в параметрах указывается "wage_schedul", и в конце отсутствует буква "e". Сначала я думал, что это был Ruby on Rails и файл перегиба, но после игры с этим он все еще не работал.

Меняет ли Restangular мои wage_schedules на wage_schedul и как мне научить его правильно выделять «wage_schedules» на «wage_schedule»?

Когда я проверяю свою полезную нагрузку, отправленную на сервер из Restangular, я вижу, что она уже называется 'wage_schedul' без 'e' в конце.

Если я поменяю синтаксис на

Restangular.all('jobs').post($scope.wage_schedule).then (response) ->
  $state.go "wage_schedules"

Тогда я получаю работу: {} в моем почтовом сообщении. Таким образом, Restangular неправильно интерпретирует преобразование wage_schedules в wage_schedule.

1 Ответ

0 голосов
/ 16 января 2019

Ответ заключался в использовании пакета: https://github.com/blakeembrey/pluralize и настройте его для использования с Restangular.

angular
  .module('paisApp')
  .config ['RestangularProvider', (RestangularProvider) ->
    RestangularProvider.setRequestInterceptor( (elem, operation, what) ->
      retElem = elem
      if operation == 'post' || operation == 'put'
        wrapper = {}
        singular = pluralize.singular(what)

        # Check if we have already applied a root node
        if elem[singular] == undefined
          wrapper[singular] = elem
          retElem = wrapper
      return retElem
    )
  ]
...