删除特定日期的多个记录

时间:2013-10-01 19:32:37

标签: ruby-on-rails forms

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

我想首先我需要一个自定义路线,其中用户选择的created_at日期将作为参数出现。

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

1 个答案:

答案 0 :(得分:2)

你的破坏行动中的一个简单的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