2011-12-15 6 views
1

Мой route.rb:Неопределенный метод 'delete_car_user_path', почему

map.resources :car_users 

car_users_controller.rb:

class CarUsersController < ApplicationController 
    def index 
    @car_users = CarUsers.all 
    end 

    def show 
    end 

    def delete 
    redirect_to :car_users_path 
    end 
end 

Я создал удалить ссылку в index зрения:

... 
<% @car_users.each do |car_usr| %> 
    <tr> 
    <td> 
     link_to "DELETE IT", delete_car_user_path(car_usr.id) 
    </td> 
    </tr> 
... 

Но я получил ошибку:

undefined method `delete_car_user_path' for #<ActionView::Base:0x9d17b40> 

Почему? (я работаю с Rails v2.3.2)

+0

может иметь некоторую помощь http://stackoverflow.com/questions/2610335/rails-scaffold -problem-undefined-method-edit-pais-path – Hishalv

ответ

1

Потому что delete_car_user_path не маршрут, и я предполагаю, что вы не определили его в любом месте. Если вы хотите стереть использование ссылки:

link_to "DELETE IT", car_user_path(car_usr), :method => :delete, :confirm => 'Are you sure ?' 

для использования в будущем использования rake routes в командной строке, чтобы получить список маршрутов.

+0

О, я подумал, как только я определю map.resources SOMETHING, рельсы автоматически создадут помощника маршрута, например delete_SOMETHING_path ... Затем, как я могу создать маршрут –

+0

Я получил error "Разрешены только запросы на получение и отправку сообщений". кажется, он жалуется на метод => удалить –

0

Я помню инструктора Lynda.com о том, что по какой-либо причине Rails (я на 4.2) не реализует маршрут DELETE. Я чувствую, что должен быть лучший способ сделать это, но это работает для меня (с использованием RESTful маршрутов):

<%= link_to "DELETE IT", "car_users/#{car_usr.id}/delete", method: :get %> 
Смежные вопросы