Невозможно выполнить успешный запрос на удаление ajax в ember

Я пытаюсь заставить кнопку удалить элемент, который является событием. Для этого мне нужно выполнить запрос на удаление ajax и настроить контроллер событий и route.rb.

Это в моем файле hbs, где у меня есть кнопка:

<button class="event__delete-btn" {{action 'remove' model}}>Delete</button>

Это моя функция удаления действия в event.js:

actions:{
    remove: function (model) {
        console.log(model.id);
        Ember.$.ajax({
               method: "DELETE",
               url: ":"+model.id
             })
    }
  }

Это мой контроллер событий, я только добавил функцию уничтожения:

class EventsController < ApplicationController
  def index
    render json: Event.all
  end

  def show
    render json: Event.find_by(slug: params[:slug])
  end

  def destroy
    @event = Event.find(params[:id])
    @event.destroy
    render json: {}
  end

  def create
    event = Event.new(filtered_params)

    if event.save
      render json: event
    else
      render json: { errors: event.errors }, status: 422
    end

  end

  private

  def filtered_params
    params.require(:event).permit(
      :name,
      :description,
      :location,
      :event_date,
      :start_time,
      :end_time,
      :contact
    )
  end
end

Это маршруты, которые у меня есть в route.rb, я добавил удалить:

  get 'events' => 'events#index'
  get 'events/:slug' => 'events#show'
  post 'events' => 'events#create'
  delete '/event/:id' => 'events#destroy'

Но всякий раз, когда я нажимаю «Удалить», я получаю: DELETE http: // localhost: 4200 / event /: 1 404 (Не найдено) Я новичок в ember и rails, так что я сделал не так?

Всего 1 ответ


Вам не нужно писать : в URL, прежде чем ваш идентификатор. Так что в этом случае /event/:id переводится в /event/1 . Ваш полный запрос ajax должен быть таким:

Ember.$.ajax({
    method: "DELETE",
    url: model.id
})

Есть идеи?

10000