我正在关注 Ryan Bates 在 Railscasts http://railscasts.com/episodes/400-what-s-new-in-rails-4的第 400 集中对 Rails 4 的预览。他将应用程序设置为使用 postgres(我已经安装)和 hstore 的演示。他创造了一个这样的脚手架
rails g scaffold article name content:text published_on:date tags properties:hstore
在迁移中这样做
execute "create extension hstore"
create_table :articles do |t|
t.string :name
t.text :content
t.date :published_on
t.string :tags, array: true
t.hstore :properties
t.timestamps
end
但是,当我运行此迁移时,我得到了一个未定义的方法“hstore”错误。然后我进入我的测试数据库并创建了 hstore 扩展,如下所示(而不是像 Ryan 那样在迁移文件中)
psql rails4test2_development
psql (9.2.3)
Type "help" for help.
rails4test2_development=# CREATE EXTENSION hstore;
但是我在运行迁移时遇到了同样的错误。
undefined method `hstore' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition:0x007fa7ee7a9138>/Users/me/Sites/rails4test2/db/migrate/20130511204911_create_articles.rb:9:in `block in change'
/Users/me/Sites/rails4test2/db/migrate/20130511204911_create_articles.rb:4:in `change'
谁能帮我理解为什么这对我不起作用?