Rails 嵌套强参数,如何使用?

我正在使用Jquery dataTables。这个库是在特定的json结构上运行的,比如说。

{"data"=>{"209"=>{"order"=>"", "name"=>"dssdbs", "task_deadline"=>"", "task_status"=>"Nie przypisano", "board_id"=>"17", "user_id"=>"2", "task_group"=>"WWW", "assigned-many-count"=>"0"}}, "id"=>"209"}

问题是,我如何才能将其变为强参数?目前,我在控制器中操作参数的方式非常糟糕。

task_params = params[:data][params[:id]]
@task = Test.find(params[:id]
@task.order = task_params[:order]
@task.name = task_params[:name]
@task.task_deadline = task_params[:deadline]
@task.task_status = task_params[:task_status]
@task.board_id = task_params[:board_id]
@task.user_id = task_params[:user_id]
@task.task_group = task_params[:task_group]
@task.save

当我想添加新的任务时,我的params看起来像:

{"data"=>{"0"=>{"order"=>"", "name"=>"dssdbs", "task_deadline"=>"", "task_status"=>"Nie przypisano", "board_id"=>"17", "user_id"=>"2", "task_group"=>"WWW", "assigned-many-count"=>"0"}}}

如你所见,我用0代替ID。

有没有什么干净又好的方法来使用强参数?一切都很好,但它与DRY方法论完全不同。

谢谢你的任何建议

解决方案:

def task_params 
  params.fetch(:data)
        .fetch(params[:id])
        .permit(
          :name,
          :order
          # ...
        )
end

fetch 可以替换为:”聂…”。require 如果你想让代码在参数缺失时引发。

给TA打赏
共{{data.count}}人
人已打赏
未分类

在.NET中初始化基类

2022-9-8 7:53:40

未分类

SQL - 更新多个表,同一列在一个查询中。

2022-9-8 8:04:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索