耙子正在流产,因为未定义的方法是“不能”。

时间:2014-06-28 13:19:41

标签: ruby-on-rails postgresql

我应该在哪里以及如何定义inet?它是一种有效的postgreSQL数据类型。

http://www.postgresql.org/docs/8.4/static/datatype-net-types.html

rake db:migrate
==  CreateSysHosts: migrating =================================================
-- create_table(:sys_hosts)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `inet' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition:0x00000005e3e068>/opt/csdashboard/db/migrate/20140628123004_create_sys_hosts.rb:4:in `block in change'

迁移文件:

class CreateSysHosts < ActiveRecord::Migration
  def change
    create_table :sys_hosts do |t|
      t.inet :address
      t.string :name
      t.string :os_name
      t.string :os_flavor
      t.int :user_id
      t.string :info
      t.string :comments

      t.timestamps
    end
  end
end

1 个答案:

答案 0 :(得分:2)

使用postgres_ext gem支持Postgres的增强数据类型,如inet。

示例postgres_ext: Adding Postgres data types to Rails

postgres_ext 为以下PostgresSQL类型添加了迁移和schema.rb支持:

  • INET
  • CIDR
  • MACADDR
  • UUID
  • 阵列