我的 route.rb :
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 :(得分:1)
因为delete_car_user_path
不是一条路线而我认为你没有在任何地方定义它。如果您想要删除链接,请使用:
link_to "DELETE IT", car_user_path(car_usr), :method => :delete, :confirm => 'Are you sure ?'
为了将来参考,请在命令行中使用rake routes
来获取路由列表。
答案 1 :(得分:0)
我确实记得Lynda.com上的一位教练说无论出于什么原因,Rails(我在4.2上)都没有实现DELETE路线。我觉得必须有一个更好的方法来做到这一点,但这对我有用(使用RESTful路线):
<%= link_to "DELETE IT", "car_users/#{car_usr.id}/delete", method: :get %>