如何删除rails中多态关联中的记录?

时间:2017-06-29 12:48:45

标签: ruby-on-rails polymorphic-associations

我一直关注此网站上的多态关联示例 https://www.richonrails.com/articles/polymorphic-associations-in-rails#comments

遗憾的是,作者没有提供如何删除人员模型或商业模式下的交互的示例。

我有interact_controller.rb

def destroy
  @context = context
  @interaction = @context.interactions.find(params[:id])
  @interaction.destroy
end

在routes.rb

resources :business do
  resources :interaction
end

在business / 1,show.html.erb中,它列出了所有互动。

<% link_to 'delete', business_interaction_path([@business, interaction]), method: :delete, data: {confirm: 'Are you sure?'} %>

我试图用它来删除单个交互,错误消息告诉我它可以找到business.id号,但找不到interaction.id号。

这是多态关联和嵌套资源,所以我感到困惑。

你能告诉我我做错了什么吗?在回答之前,您必须先了解本教程吗?谢谢!

1 个答案:

答案 0 :(得分:0)

<% link_to 'delete', business_interaction_path(@business, interaction), method: :delete, data: {confirm: 'Are you sure?'} %>


def destroy
  @context = context
  @interaction = @context.interactions.find(params[:id])
  @interaction.destroy
  redirect_to context_url(context)
end

我忘了在删除后重定向到正确的页面。这就是为什么它一直给我一个错误信息。