我有一個DocumentType
模型w/a extensions
屬性。在我的表單中,我允許人們將這些擴展插入到表單中。serialize&before_save in Rails 4
我希望能夠在保存之前解析輸入,剝離出任何無效選項,將其轉換爲數組並將Rails序列化。
我有下面的代碼,但我只是最終瓦特/輸入用戶的形式,而不是一個數組了:
class DocumentType < ActiveRecord::Base
serialize :extensions
before_save :process_extensions
def process_extensions
self.extensions = [*self.extensions.gsub(/[^a-z ]+/i, '').split(' ')].uniq
end
end
你有沒有試過有一個psuedo屬性的字符串輸入設置數組,而不是將兩者合併到一個屬性? –
我沒有。如果可能的話,我想避免這種情況,或者至少明白爲什麼我沒有得到我期望的結果。 –
使用Ruby 1.9.3p392,Rails 4.0.0和Postgres測試你的代碼。代碼只是起作用。我已將擴展名設置爲「abc1 def abc!def」,讀完後得到[「abc」,「def」]。 –