小编Dav*_*edy的帖子

Rails in Rails:我应该使用db:reset吗?

我对默认的Rails Rake任务的预期用途感到有些困惑,并且想知道我是应该使用db:reset还是编写自定义Rake任务.没有什么聪明的,只是每天的家务管理,我可能会错过一个明显的文档,因为我是Rails的新手.

我的问题:我想丢弃我的数据库并从一个完全干净的设置运行,以便我可以确定数据库只包含已知数据.这对于演示准备,调试以及确保Jenkins在测试中进行类似比较非常有用.

目前,我写的是这样的:

bin/rake db:drop:all db:create:all db:migrate db:seed db:test:prepare
Run Code Online (Sandbox Code Playgroud)

这需要输入很多,但只在dev和test数据库中保留种子数据.我不确定这有什么不同db:reset,哪种类型更方便.

我应该使用db:reset还是编写自定义db:from_scratch任务?

rake ruby-on-rails

15
推荐指数
2
解决办法
2万
查看次数

Rails&Devise:如何自动使用域名配置邮件?

我需要一些有关在生产Ruby-on-Rails站点中配置邮件的建议。

我在EngineYard上部署了Rails应用程序。我有几个站点,例如- demo.mydomain.comstaging.mydomain.com-如何配置Devise,以便在部署时可以确保确认邮件来自demo.mydomain.comstaging.mydomain.com自动发送?,我想要相同的GitHub代码库,并希望动态填充配置。

目前在config/environments/production.rb我行:

config.action_mailer.default_url_options = { :host => 'demo.mydomain.com' }
Run Code Online (Sandbox Code Playgroud)

但是,当将相同的代码部署到staging.mydomain.com它们都在其中运行时,这是不正确的RAILS_ENV=production

有任何想法吗?

谢谢戴夫

更新:现在,为了实际操作,我添加了特定的环境来对邮件域进行硬编码。所以,现在demo.mydomain.com运行在environments/demo.rb,和www.mydomain.com上运行environments/productions.rb。我喜欢这个就是文件之间的重复,这不是很清楚,我怎么干起来,因为我有,例如database.yml

ruby-on-rails devise engineyard

5
推荐指数
1
解决办法
2093
查看次数

如何从RSpec获取当前的测试文件名?

我正在努力加快一个大的RSpec项目的测试.除了使用RSpec --profile选项之外,我还希望打印出运行时间最长的测试文件[1].

在我的spec_helper.rb转储被测试的类和文件的总时间,但是因为我们spec/modelspec/request目录我真的希望能够打印当前测试的文件名而不仅仅是类名(described_class),以便用户可以消除歧义在优化之间model/foo_spec.rb和之间request/foo_spec.rb.

在一个before块中spec/spec_helper.rb,如何获取当前测试文件的文件名?

我(严重修剪)spec_helper看起来像这样:

config.before :all do
  @start_time = Time.now
end

config.after :all do |test|
  timings.push({ :name => test.described_class,
                 :file => 'I do not know how to get this',
                 :duration_in_seconds => (Time.now - @start_time) })
end

config.after :suite do
  timing_logfile_name = 'log/rspec_file_times.log'
  timing_logfile = "#{File.dirname(__FILE__)}/../#{timing_logfile_name}"
  file = File.open(timing_logfile, 'w')
  timings.sort_by{ |timing| timing[:duration_in_seconds].to_f }.reverse!.each do |timing|
    file.write( sprintf("%-25.25s    % …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails rspec2

4
推荐指数
1
解决办法
4056
查看次数

标签 统计

ruby-on-rails ×3

devise ×1

engineyard ×1

rake ×1

rspec ×1

rspec2 ×1

ruby ×1