Rails 嵌套强参数,如何使用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
如果你想让代码在参数缺失时引发。
以上是关于Rails 嵌套强参数,如何使用?的主要内容,如果未能解决你的问题,请参考以下文章