我想向我的模型添加刪除功能。這是我想出的,但即使我不需要渲染頁面來刪除的東西,Rails渲染和找不到文件的「delete.html.erb」我正在使用的文件爲Rails刪除http方法呈現頁面
紅寶石2.0dev和Rails 4.0
我刪除鏈接:
<%= link_to "Delete", reservation_delete_path(item), :class => "btn btn-small btn-danger", method: :delete, data: {confirm: 'Are you sure?'} %></td>
我的路線文件:
match 'reservations/delete/:id' => 'reservations#delete', via: :delete, :as => 'reservation_delete'
我的控制器:
def delete
@current = Reservations.find(params[:id])
if current_user
if @current.user_id == current_user.id
@current.destroy!
redirect_to reservations_path
else
redirect_to reservations_path
end
else
redirect_to reservations_path
end
end
您是否有其他可能會干擾的路線?也許你已在'match'reservations/delete /:id'=>'reservations#delete'之前加入'resources:reservations',通過:: delete,:as =>'reservation_delete''?否則,嘗試訪問'localhost:3000/rails/routes',並在那裏定義你的路由。如果您向我們展示了您的整個路線文件,它可能會有幫助 – jokklan
你也可以改善你的控制器(請參閱@Damien Roche的答案)和你的路線。你不應該使用匹配,不建議在Rails 4中使用,而是使用'delete'reservations/delete /:id'來:'reservations#delete',如:'reservation_delete''或更好的資源:reservartions ,只有::刪除'作爲musicnerd47的建議。 – jokklan