ruby-on-rails - 在 Ruby 中处理多个参数
问题描述
我有一个场景,我有一个表单,其中添加了新员工并删除了相同表单中保存的员工。虽然添加它很好,但是当我们删除一条记录并单击保存时,它会在另一个页面中引发验证错误。我试图在以下同一页面中阻止是我的控制器方法:
def check_params
#raise
return if params[:employee].present?
flash[:alert] = 'Please fill in form before submitting.'
redirect_to edit_employee_url
end
我尝试添加
return if params[:employee].present? && params[:employee][:emp_attributes]["0"]["_destroy"] != "1"
但仅适用于一个员工记录,如果我们有多个记录,则不会。
以下是通过raise捕获的参数。
params => "✓", "_method"=>"patch", "authenticity_token"=>"AAABBBVC==", "employee"=>{"emp_attributes"=>{"0"=>{"_destroy"=> "1", "name"=>"test", "start_day_of_the_week"=>"Monday", "sw_id"=>"2"}, "1"=>{"name"=>"test2", "start_day_of_the_week" =>"星期一", "sw_id"=>"3"}}}, "form_step"=>"2", "commit"=>"保存并继续", "view_context"=>:empdet, "controller"= >“employees”、“action”=>“update”、“id”=>“29955”} 允许:假>
params[:employee] => {"0"=>{"_destroy"=>"1", "name"=>"test", "start_day_of_the_week"=>"Monday", "sw_id"=>"2"} , "1"=>{"name"=>"test2", "start_day_of_the_week"=>"Monday", "sw_id"=>"3"}}} 允许:false>
解决方案
尝试这个:
return if params[:employee].present? &&
params[:employee][:emp_attributes].values.any?{|m| m.key?("_destroy")}
推荐阅读
- tensorflow-federated - TFF:数据集大小的增加是否与轮数的增加成正比?
- curl - 从 github 文件中读取内容并在 curl 请求中作为数据发布
- sql-server - 将日期时间转换为天数;sql中的分钟和小时
- python - 不和谐中的 8ball 命令给出整个列表而不是一个随机响应
- java - 前台服务在 Redmi 8a Dual 中被杀死?有什么解决办法吗?
- pip - pip show 不显示包,但我可以导入它
- security - WinAPI:共同设计一个目录
- ffmpeg - 强制 avcodec_receive_packet 返回数据包
- ruby-on-rails - 无法打开到 localhost:3101 的 TCP 连接 - Rails / Docker
- perforce - 有没有办法将 perforce 客户端视图保存到文件中以便在团队之间共享