我是 Rails 新手,已經開始構建我的第一個 api;我正在嘗試將字串陣列作為我的 api 請求中的引數之一發送,如下所示:
{
"name": "doot doot",
"plans": "",
"sketches": "",
"images": ["foo.png", "bar.png"]
}
最初,images是一個字串,但我運行了一個遷移來改變它以允許一個字串陣列,如下所示:
change_column :projects, :images, "varchar[] USING (string_to_array(images, ','))"
在控制器中,我將create函式定義為:
def create
project = Project.create(project_params)
render json: project
end
def project_params
params.require(:project).permit(:name, :plans, :sketches, :images)
end
但我仍然收到以下錯誤:
Unpermitted parameter: :images. Context: { controller: ProjectsController, action: create, request: #<ActionDispatch::Request:0x00007fb6f4e50e90>, params: {"name"=>"Simple Box", "plans"=>"", "sketches"=>"", "images"=>["foo.png", "bar.png"], "controller"=>"projects", "action"=>"create", "project"=>{"name"=>"Simple Box", "plans"=>"", "sketches"=>"", "images"=>["foo.png", "bar.png"]}} }
我在這里咨詢了這個問題,但解決方案不起作用;有什么建議?
uj5u.com熱心網友回復:
您需要指定這images是一個陣列。
params.require(:project).permit(:name, :plans, :sketches, images: [])
請參閱Rails 指南中允許的標量值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441498.html
標籤:轨道上的红宝石
