2013-05-25 29 views
0

这是最初的移民在这里我设置的默认值:序列化数组属性返回字符串,而不是数组

class CreateMove < ActiveRecord::Migration 
    def change 
    create_table :moves do |t| 
     ... 
     t.text :move_types, :null => false, :default => [0] 
     ... 
    end 
    end 
end 

这是模型:

class Move < ActiveRecord::Base 
    serialize :move_types, Array 
end 

现在,当我打电话Move.new,我得到如下:

=> #<Move id: nil, move_types: "'---\n- 0\n'"> 

但我应该得到的是

=> #<Move id: nil, move_types: [0]> 

事实上,当我创建一个Move.create(move_types: [0])移动和我获取该举动,这是返回什么!

+0

据我所见,move_types是一个文本列,文本列包含字符串而不是数组。您可能需要围绕此列访问器编写包装。 – rubish

+0

但是这不是应该由模型中的'serialize'方法完成吗? – Ashitaka

回答

0

这是Rails中的一个错误。它现在已经在Rails 4中修复了。

相关问题