代码之家  ›  专栏  ›  技术社区  ›  sarunw

我需要什么特殊的方法来让rails识别db中的数据类型吗?

  •  0
  • sarunw  · 技术社区  · 15 年前

    我创建了一个变量模型,它有两个属性名称和值,用于在我的站点中保存任何选项。我想知道的是,我是否需要任何特殊的方法(如serialize)来让rails在读取数据类型之后或写入db之前识别数据类型?

    serialize :值,但只有数据类型工作是数组散列和字符串,其他类型不工作。 一切都很好,但真的是吗?如果是,为什么rails有这个 序列化

    这是我的密码

    class CreateVariables < ActiveRecord::Migration
      def self.up
        create_table :variables do |t|
          t.string :name
          t.text :value
    
          t.timestamps
        end
    
        add_index :variables, :name, :unique => true
      end
    
      def self.down
        drop_table :variables
      end
    end
    
    class Variable < ActiveRecord::Base
    
    
      validates_uniqueness_of :name
      validates_presence_of :name, :value
    
    end
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   EmFi    15 年前

    仅当将对象作为ActiveRecord模型的属性存储在数据库中时,才需要序列化。

    根据变量表的模糊描述,不需要序列化。 如果属性很好地存储在任何标准数据库列类型(如String、Fixnum、Boolean或其任何子类)中,则不需要序列化这些属性。如果名称/值对中的值比这更复杂,则需要序列化。例如,数组、散列和自定义对象的值将需要序列化。

    一旦用serialize方法指定,就不必做任何其他事情。

    推荐文章