【问题标题】:What is The Correct Way To Delete A has_one Association From a Link从链接中删除 has_one 关联的正确方法是什么
【发布时间】:2015-07-28 08:08:56
【问题描述】:

我有一个NewsItem 模型,它是has_one :photo。我希望允许用户从链接中快速删除此关联(无需使用 Edit NewsItem 表单)。

在不为此目的添加额外控制器操作的情况下从链接中删除此关联的正确方法是什么?

编辑:我的 NewsItemController 上已经有 7 个标准 CRUD 操作。我不想只为这种情况添加新操作。

【问题讨论】:

  • 您要删除news_item 或关联的photo 还是两者都删除?
  • 没有控制器操作是不可能的
  • @Pavan 我只想删除关联(Photo)。
  • @YuryLebedev 并不是我不想使用控制器动作。只是我不想为了处理这种情况而添加一个动作。我的 NewsItem 模型上已有 7 个标准操作。
  • 你可以有正常的link_to并在控制器中的destroy方法中将@news_item.destroy更改为@news_item.photo.destroy

标签: ruby-on-rails ruby activerecord associations has-one


【解决方案1】:

您必须向控制器发送删除请求#action

在行动中你可以简单地做

  news_item = NewsItem.find(params[:news_item_id])
  news_item.photo.destroy

建立销毁链接

link_to 'Destroy Photo', news_items_photo_path(news_item, news_item.photo), data: { confirm: 'Are you sure?' }, method: :delete

【讨论】:

  • 我不是在问如何从控制器中删除 ActiveRecord 关联。我在问如何使用现有的 Restful 操作创建一个删除关联的链接。
  • 链接你可以像-link_to 'Destroy Photo', news_items_photo_path(news_item, news_item.photo), data: { confirm: 'Are you sure?' },方法::删除
猜你喜欢
  • 2012-09-12
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2020-04-17
相关资源
最近更新 更多