首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dependent::deleting不是从视图中删除依赖项

dependent::deleting不是从视图中删除依赖项
EN

Stack Overflow用户
提问于 2014-06-09 03:15:00
回答 1查看 420关注 0票数 1

项目有很多房间。当我从视图中删除一个项目时,关联的房间不会被删除。房间也有许多产品,当一个项目被删除时,这些产品也应该被删除。

项目类

代码语言:javascript
复制
class Project < ActiveRecord::Base
  belongs_to :user

  has_many :rooms, dependent: :destroy
  has_many :products, through: :rooms
end

项目财务主任

代码语言:javascript
复制
class ProjectsController < ApplicationController
    def destroy
        @project = current_user.projects.find(params[:id])
        if @project.delete
            redirect_to user_projects_path(@project.user)
        end
    end
end

客房控制器

代码语言:javascript
复制
class RoomsController < ApplicationController
    def destroy
        @room = Room.find(params[:id])
        if @room.delete
            redirect_to root_path
         end
     end

“项目”中的“删除”链接显示视图。

代码语言:javascript
复制
 = link_to "Delete", project_room_path(room.project, room), method: :delete, data: { confirm: "Are you sure?" }, title: room.title, class: "btn btn-danger"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-09 03:20:37

尝试更改破坏操作,以调用实例变量的破坏方法,而不是删除。

代码语言:javascript
复制
 class ProjectsController < ApplicationController
   def destroy
     @project = current_user.projects.find(params[:id])
     if @project.delete
       redirect_to user_projects_path(@project.user)
     end
   end
 end

根据活动记录协会上的文档,"has_many :通过关联有连接表中的记录,以及关联的记录。所以……假定在关联中删除是为了删除所有者和关联对象之间的链接,而不一定是关联对象本身。因此,对于. has_many : than,连接记录将被删除,但是关联的记录不会被删除。“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24113198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档