0

我在里面添加了monetizedemonetize助手ActiveRecord::MigrationActiveRecord::ConnectionAdapters::TableDefinitionActiveRecord::ConnectionAdapters::Table通过那个拉请求

该文件显示了使用示例。因此,您将一目了然地了解发明的变化。(有用)

但我不知道如何测试我的助手。我可以用什么方式为他们编写规范?我在规范文件中编写迁移并手动运行它们的所有尝试都失败了。迁移手动运行没有更改表(或者我无法检测到更改)并且没有抛出任何异常。

我的尝试示例:

describe 'monetize' do
  class MonetizeMigration < ActiveRecord::Migration
    def change
      create_table :items
      monetize :items, :price
    end
  end

  class Item < ActiveRecord::Base; end

  it 'should monetize items' do
    MonetizeMigration.up    #=> nil
    Item                    #=> Item(has no table)
  end
end  
4

2 回答 2

1

这在控制台中对我有用:

[4667]foo@bar:~/dev/ror/foo$ 导轨 c
加载开发环境(Rails 3.2.9)
irb(main):001:0> class MyMigration def change
irb(main):003:2> create_table :foo
irb(main):004:2> 结束
irb(main):005:1> 结束
=> 无
irb(main):006:0> MyMigration.new.change
-- create_table(:foo)
   (4.5ms) 选择 sqlite_version(*)
   (133.2 毫秒)创建表“foo”(“id”整数主键自动增量不为空)
   -> 0.2362s
=> []
于 2012-11-25T13:18:39.143 回答
0

您可以直接在数据库连接上执行任何迁移辅助方法:

ActiveRecord::Base.connection.create_table :items

感谢@happy_user 在第一次尝试中显示我的错误。我认为将来有人可能会使用我的最新解决方案,所以我将其留在这里。

于 2012-11-26T08:15:55.653 回答