[英]Attribute was supposed to be a Array, but was a ActionController::Parameters
我收到以下錯誤:
ActiveRecord::SerializationTypeMismatch at /classifications
Attribute was supposed to be a Array, but was a ActionController::Parameters. -- {"1"=>"pumpkin text"}
在我的分類模型中,我有以下序列化,對應於名為text_types的default_fields的mysql列:
serialize :default_fields, Array
在我看來,name屬性看起來像這樣:
<input id="classification_default_fields_n" name="classification[default_fields][1]" type="checkbox" value="pumpkin text">
而且我可以有多個像這樣的字段:
<input id="classification_default_fields_n" name="classification[default_fields][2]" type="checkbox" value="cucumber text">
<input id="classification_default_fields_n" name="classification[default_fields][3]" type="checkbox" value="orange text">
如您所見,我期望變量default_fields中有一個字符串數組。 但是,它沒有將這些字段嘗試作為數組。 它將它們視為鍵/值對的哈希。
我該如何解決?
好吧,我現在明白了。 如果要發送數組,則方括號必須為空,如下所示:
classification[default_fields][]"
如果要發送哈希,則方括號必須包含一個表示鍵的值,並且該值由輸入數據表示:
classification[default_fields][1]
現在,如果您要發送哈希的集合(哈希),則括號中的值指示哈希元素之一的鍵:
classification[default_fields[1][key1]]
classification[default_fields[2][key2]]
還為您想要的添加正確的序列化:
serialize :default_fields, Hash
# or
serialize :default_fields, Array
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.