Ruby on rails 删除每个关系

Ruby on rails 删除每个关系,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有两个模型:Event和Link 事件有很多链接 链接属于:事件 我想在调用events_controller.rb#destroy操作时删除所有相关链接 这是销毁操作: def destroy @event = Event.find(params[:id]) @event.destroy links = @event.links for link in links do link.destroy end respond_to do |format|

我有两个模型:
Event
Link

  • 事件
    有很多链接
  • 链接
    属于:事件
我想在调用
events_controller.rb#destroy
操作时删除所有相关链接

这是销毁操作:

def destroy
  @event = Event.find(params[:id])
  @event.destroy

  links = @event.links

  for link in links do
    link.destroy
  end

  respond_to do |format|
    format.html { redirect_to :back }
    format.json { head :no_content }
  end
end

但它似乎不起作用。我哪里出错了?

停在那里,你不必重新发明这个轮子。Rails为您完成了这项工作

在模型中,只需指定

class Event
  has_many :links, :dependent => :destroy
end
当您删除一个
事件
时,它的所有链接都将自动销毁

从导轨上:

从属关联

有多个、有一个和属于支持:依赖选项的关联。这允许您指定删除所有者时应删除关联的记录