Удалить ресурс из внешнего API из действия уничтожения в контроллере Rails? - PullRequest
0 голосов
/ 17 мая 2018

Я выясняю, как я могу удалить некоторый ресурс из внешнего API из действия уничтожения в контроллере Rails.

, чтобы удалить этот ресурс, я должен сделать это, на самом деле у меня есть этот код в Концерне впапка контроллеров:

Концерн

def unsubscribe_user
  @external_api = ExternalApi.new(@key1, @key2)

  @subscription = @external_api.create(:subscription)
  # subscription_id and client_id are stored in my DB as an "historical" record
  @unsubscribed = @subscription.delete(subscription_id, client_id)
end

Контроллер

def destroy
  unsubscribe_user

  if @unsubscribed.nil?
      flash[:notice] = "Successfully unsubscribed..."
      redirect_to root_path
    else
      flash[:error] = "An error has ocurred..."
      redirect_to root_path
    end
end

ооо, на мой взгляд, у меня есть:

<p>Unsubscribe <%= button_to "Cancel my Subscription", suscription_path, {:action => :delete} %> </p>

Rails нужен идентификаторудалить ресурс из БД (например: subscription_path (current_user.id)), поэтому у меня нет этого ресурса в моей локальной БД, нет идентификатора для передачи.Мне нужно только выполнить этот код концерна в действии уничтожения.Как я могу это сделать?

Редактировать

Я забыл поставить маршруты:

resources :subscribe, except: :edit

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Используйте исключительный ресурс в ваших маршрутах:

resource :subscribe, except: :edit

Тогда в вашем rake routes вы увидите, что вам не нужен аргумент id

0 голосов
/ 17 мая 2018

просто используйте поддельный идентификатор, например, 1, или вы можете использовать другие конфигурации маршрута для этого действия

...