簡體   English   中英

將Rails中深層嵌套的強參數列入白名單

[英]whitelisting deeply nested strong parameters in rails

我正在嘗試在文本列中存儲序列化的Ransack搜索。 它嵌套得很深,我正在努力提出許可要求。 這是一個示例哈希:

{
  "c"=>{
    "0"=>{
      "a"=>{
        "0"=>{
          "name"=>"column_1"
        }
      },
      "p"=>"eq",
      "v"=>{
        "0"=>{
          "value"=>"value_1"
        }
      }
    },
    "1"=>{
      "a"=>{
        "0"=>{
          "name"=>"column_2"
          }
      },
      "p"=>"cont",
      "v"=>{
        "0"=>{
          "value"=>"value_2"
        }
      }
    }
  }
}

您將如何寫許可證? 這是我閱讀文檔的最佳猜測,但是它不起作用。

def course_listing_params
  params.require(:course_listing).permit({ q: { c: [{ a: [:name] }, :p,  { v: [:value] }] } })
end

我最終建立了另一個模型來存儲條件,並使用accepts_nested_attributes_for在course_listing控制器中創建條件。

我必須添加

conditions_attributes: [:id, :attr, :pred, :val, :_destroy]

我的許可電話才能使一切正常。 中間的三個是我自己的屬性,:id防止Rails每次編輯都添加新條件,而:_destroy則可以刪除條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM