我正在制作一个CRUD应用程序,除了销毁之外一切正常。当我在编辑页面中点击删除按钮时,我收到以下错误:TravelersController中的ActiveRecord :: RecordNotFound#show,找不到带有' id' =的旅行者14,提取的来源(第22行):
def show
@traveler = Traveler.find(params[:id])
end
但是,如果我返回到我的用户列表,即使我收到该错误,该应用程序也会删除该用户。
这是我的控制器代码:
def show
@traveler = Traveler.find(params[:id])
end
def destroy
Traveler.destroy(params[:id])
redirect_to traveler_path
end
我的编辑页面:
<%= form_for @traveler do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :age %>
<%= f.number_field :age %></br>
<%= f.submit %>
<% end %>
<%= button_to "DELETE", traveler_path(@traveler), :method => :delete %>
答案 0 :(得分:6)
这是因为当您销毁旅行者时,您会重定向到<div id="zoombox">
</div>
,这是您刚删除的旅行者的traveler_path
操作。它试图加载那个旅行者并失败。
要解决此问题,只需将其更改为重定向到其他位置 - 例如,旅行者索引路径。