Rails应用程序对象在控制台与脚本中

时间:2013-11-16 18:16:37

标签: ruby-on-rails

我正在尝试在加载Rails环境的Ruby脚本中使用app对象,但我只有问题......

脚本看起来像这样:

ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development'
require ::File.expand_path('../config/environment',  __FILE__)

app = Rails.application

puts app.users_path(21)

我得到了

undefined method `users_path' for #<BacklinkHealth::Application:0x007fd6fac80d60> (NoMethodError)

如果我加入Rails.application.routes.url_helpers,那就没问题了......

但问题是我还需要拨打app.get,我不知道如何启用它。

为什么这个app对象在脚本中与在Rails命令行中的不同?

1 个答案:

答案 0 :(得分:0)

我看到app是控制台中的一个方法,它返回ActionDispatch::Integration::Session的实例,而Rails.application是BacklinkHealth::Application。所以解决方案是:

app = ActionDispatch::Integration::Session.new(Rails.application)