Неизвестное действие Ни одно действие не отвечает на удаление.Действия: добавлять, редактировать и индексировать - PullRequest
0 голосов
/ 18 мая 2011

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

Unknown action

No action responded to delete. Actions: add, edit, and index

Ссылка редактирования рядом с удалением работает без проблем. Я не понимаю, почему удаление не работает. Это то, что находится в моем контроллере car_controller.rb

def delete
    @car = Car.find(params[:id])
    flash[:notice] = "Question #{@car.name} deleted!"
    @car.destroy
    redirect_to :controller => :car, :action => :index
  end

map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
  map.root :controller => "main"
  map.root :controller => "car"
end

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Убедитесь, что в вашем запросе используется правильный HTTP-глагол.По умолчанию Rails для REST-ресурсов использует HTTP DELETE в действии destroy.Используете ли вы GET (простая ссылка) или POST вместо DELETE?

Я рекомендую проверить ваши маршруты - запустите rake routes - чтобы подтвердить ожидания Rails.Если вы используете генератор маршрутов ресурсов Rails, то я ожидаю, что ваш шаблон представления будет содержать что-то вроде этого:

<%= form_for @car, :html => { :method => :delete } do |f| %>
  <%= submit_tag 'Delete Car' %>
<% end %>
0 голосов
/ 18 мая 2011

Разве действие по удалению не уничтожает?

Если вы посмотрите на контроллер, который был сгенерирован как часть скаффолда, вы должны увидеть, к чему относится действие удаления ...

Rails предоставляет 7 классических действий RESTful из коробки, когда вы генерируете контроллер, и у каждого есть фактический метод URL +, прокомментированный выше метода действия ...

# DELETE /subject_families/1
# DELETE /subject_families/1.xml
def destroy
  ...
end

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...