Heroku可能出于各种原因向您的应用程序发送SIGTERM,因此我创建了一个处理程序来处理一些清理,以防万一.一些谷歌搜索没有得到任何关于如何在RSpec中测试这个的答案或例子.这是基本代码:
Signal.trap('TERM') do
cleanup
end
def cleanup
puts "doing some cleanup stuff"
...
exit
end
Run Code Online (Sandbox Code Playgroud)
测试程序收到SIGTERM时调用此清理方法的最佳方法是什么?
每次我运行rake db:migraterails都决定更改我的schema.rb文件.在某些情况下,这是完全合理的,但在其他一些情况下,它似乎无缘无故地这样做.我很困惑的情况是当我从git中提取一个新的migration.rb和一个新版本的schema.rb,然后运行rake db:migrate.由于schema.rb文件的新版本附带此迁移,因此我不应该更新schema.rb.但是,rails每次都会改变它.当发生这种情况时,我发现了令人难以置信的愚蠢变化
add_index "my_table", ["column1", "column2"], :name => "index_on_some_columns"
Run Code Online (Sandbox Code Playgroud)
至
add_index "my_table", ["column2", "column1"], :name => "index_on_some_columns"
Run Code Online (Sandbox Code Playgroud)
当这种情况发生时,我只是继续奔跑git checkout db/schema.rb,继续我的生活,但它让我永无止境.是否有这样做的原因,我怎么能阻止它这样做?
编辑:这是一个差异的摘录
@@ -165,12 +165,11 @@ ActiveRecord::Schema.define(:version => 20130206001907) do
t.column "updated_at", :datetime
- t.column "coordinates", :point, :srid => 4326
@@ -200,15 +199,16 @@ ActiveRecord::Schema.define(:version => 20130206001907) do
t.column "something", :boolean
+ t.column "coordinates", :point, :srid => 4326
+ t.column "random_string", :string
t.column "remote", :string
- t.column "random_string", :string
end
- add_index "my_table", ["id", …Run Code Online (Sandbox Code Playgroud) 使用ActiveAdmin(0.5.1)我想创建多个不同的表单来创建一个对象并将其保存到我的数据库中.我试图通过使用来做到这一点ActiveAdmin.register_page,但我在尝试创建表单时遇到了麻烦.似乎在使用时register_page,您没有获得与通话中相同的form方法register.这是代码:
ActiveAdmin.register_page "New Object" do
content do
para "Here you can create new objects!"
para "This content will be replaced with links to the specialized forms"
end
end
Run Code Online (Sandbox Code Playgroud)
以及其中一种形式的代码:
ActiveAdmin.register_page "Type 1" do
menu :label => "Type 1", :parent => "New Object"
content do
panel "Attributes" do
form do |f|
f.input :color
f.input :size
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是,此表单不会以任何可行的方式呈现.此外f.inputs,您可以在示例中看到的许多其他方法(如此)也不起作用.是否可以使用完整功能表格ActiveAdmin#register_page?