相当新的rails并不能让这个简单的破坏行动起作用。它只是重定向到mod面板索引页面,并没有销毁记录。我是否需要在destroy方法中调用.destroy
?或者我有什么遗失的东西?
mod_approval controller
def index
@guide = Guide.friendly.find(params[:guide_id])
@check_category = CheckCategory.where(guide_id: @guide.id).all
@category = Guide.friendly.find(@guide.id).categories.new
end
def destroy
redirect_to guide_mod_panel_mod_approval_index_path(@guide)
end
配置/ routes.rb中
match '/guides/:guide_id/mod-panel/approve/reject' => 'mod_approval#destroy', :via => :delete, as: :guide_mod_panel_approve_destroy
index.html.erb
<% @check_category.each do |category| %>
<%= link_to "Reject", guide_mod_panel_approve_destroy_path(@guide, category), method: :delete, data: {confirm: "You sure?"} %><br>
<% end %>
答案 0 :(得分:1)
你需要从数据库中获取记录,然后你可以在对象上调用destroy,你可以这样做
def destroy
guide = Guide.find(params[:guide_id])
category = guide.categories.find(params[:id])
category.destroy
redirect_to guide_mod_panel_mod_approval_index_path(guide)
end
希望有所帮助!
答案 1 :(得分:0)
你必须先破坏对象:
def destroy
@destroyed_object.destroy # or Model.destroy(params[:id])
redirect_to guide_mod_panel_mod_approval_index_path(@guide)
end