我有一个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”]。 –