首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3)删除、Destory和路由

Rails 3)删除、Destory和路由
EN

Stack Overflow用户
提问于 2012-12-09 04:00:53
回答 1查看 234关注 0票数 0

问题是下面的代码

代码语言:javascript
复制
<%= button_to t('.delete'), @post, :method => :delete, :class => :destroy %>

我的Post模型有许多依赖删除的关系。然而,上述代码只会删除帖子,使其关系完好无损。问题是删除和销毁方法是不同的,因为该方法delete没有实例化对象。

所以我需要使用“破坏”而不是“删除”我的帖子。

<%= button_to t('.delete'), @post, :method => :destroy %>给出了路由错误。

没有路线匹配哨所“/哨所/2”

<%= button_to t('.delete'), @post, Post.destroy(@post) %>在不单击按钮的情况下删除帖子。

有人能帮我吗?

更新:

application.js

代码语言:javascript
复制
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require bootstrap-modal
//= require bootstrap-typeahead
//= require_tree .

耙路

代码语言:javascript
复制
DELETE (/:locale)/posts/:id(.:format)                        posts#destroy

Post模型

代码语言:javascript
复制
has_many :tag_links, :dependent => :destroy
has_many :tags, :through => :tag_links

标签模型

代码语言:javascript
复制
has_many :tag_links, :dependent => :destroy
has_many :posts, :through => :tag_links

问题:当我删除一个帖子时,所有的tag_links都被销毁了,但是标签仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-09 04:51:34

:method => :delete是指HTTP方法删除,与活动记录的delete方法无关。

您需要检查您的模型代码,您是否错过了关系的:dependent => :destroy选项?

例如,如果帖子有许多评论,那么它应该是:

代码语言:javascript
复制
has_many :comments, :dependent => :destroy

当然,在控制器中,您需要使用@post.destroy而不是@post.delete

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

https://stackoverflow.com/questions/13784513

复制
相关文章

相似问题

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