Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在特定日期删除多条记录_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails 在特定日期删除多条记录

Ruby on rails 在特定日期删除多条记录,ruby-on-rails,forms,Ruby On Rails,Forms,我构建了一个RoR应用程序,允许用户删除多个项目,这些项目的创建日期字段与用户在删除表单的日期字段中设置的日期相匹配。这将是一个带有1个日期字段和一个提交按钮的删除表单 我想首先我需要一个自定义路由,其中用户选择的在日期创建的_将作为参数显示 然后,我需要在items controller中执行一个自定义操作,从路由中获取created_at参数,使用它获取属于用户的所有项目(这意味着用户id也必须作为参数存在),这些项目是在created_at date创建的。然后使用循环删除它们。 这听起来

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

我想首先我需要一个自定义路由,其中用户选择的在日期创建的_将作为参数显示

然后,我需要在items controller中执行一个自定义操作,从路由中获取created_at参数,使用它获取属于用户的所有项目(这意味着用户id也必须作为参数存在),这些项目是在created_at date创建的。然后使用循环删除它们。
这听起来相当直截了当,但我还是想知道是否有一个“最佳方案”来实现这一点。比如如何以rails的方式正确设置路由?

销毁操作中的一个简单的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\u id/profil/naplo/:id(:格式)。如何使用适当的url(发送日期和成员id)生成表单?