【问题标题】:Delete multliple records on a particular date删除特定日期的多条记录
【发布时间】:2013-10-01 19:32:37
【问题描述】:

我构建了一个 RoR 应用程序,我希望允许用户删除多个项目,其中 created_at 字段与用户在删除表单的日期字段中设置的日期相匹配。这将是一个带有 1 个日期字段和一个提交按钮的删除表单。

我想一开始我需要一个自定义路由,其中​​用户选择的 created_at 日期将作为参数显示。

然后我需要在 items 控制器中使用自定义操作从路由中获取 created_at 参数,使用它来获取属于用户的所有项目(这意味着用户 ID 也必须作为参数存在),并在 created_at 日期创建。然后使用循环删除它们。 这听起来相当简单,但我仍然想知道是否有“最佳实践”来实现这一点。喜欢如何以 rails 方式正确设置路线?

【问题讨论】:

  • 一个基本的删除路由可以让你传递参数而不在路由文件中声明它们

标签: ruby-on-rails forms


【解决方案1】:

您的销毁操作中的一个简单 if 语句应该可以解决问题:

# DELETE /items/1
# DELETE /items/1.json
def destroy
  if params[:date]
    Item.where(created_at: params[:date]).destroy_all
  else
    Item.where(id: params[:id]).destroy
  end

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

【讨论】:

  • 感谢瑞恩的回答!是的,这似乎是一个很好的解决方案,但我仍然无法想出一个表格来实现这一点。该项目的销毁路线(这是一个训练)如下所示: /tagok/:member_id/profil/naplo/:id(.:format) 。如何生成具有适当 url 的表单(将日期与成员 ID 一起发送)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2020-11-10
  • 2022-01-01
相关资源
最近更新 更多