无法在铁轨中工作

时间:2016-03-22 09:12:10

标签: ruby-on-rails ruby-on-rails-4

相当新的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 %>

2 个答案:

答案 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