0

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

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

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

4

1 回答 1

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
于 2013-10-01T19:37:52.450 回答