Ruby on rails 控制台中的Rails应用程序对象与脚本中的Rails应用程序对象
我试图在加载Rails环境的Ruby脚本中使用Ruby on rails 控制台中的Rails应用程序对象与脚本中的Rails应用程序对象,ruby-on-rails,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) 我明白了 用于#的未定义方法“users_path
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)
我明白了
用于#的未定义方法“users_path”(NoMethodError)
如果我包括Rails.application.routes.url\u helpers
,那么就可以了
但问题是我还需要调用app.get
,我不知道如何启用它
为什么这个应用程序对象在脚本中与在Rails命令行中如此不同?我看到
app
是控制台中的一个方法,它返回一个ActionDispatch::Integration::Session
的实例,而Rails.application是BacklinkHealth::application
。因此,解决方案是:
app = ActionDispatch::Integration::Session.new(Rails.application)
我看到
app
是控制台中的一个方法,它返回ActionDispatch::Integration::Session
的实例,而Rails.application是BacklinkHealth::application
。因此,解决方案是:
app = ActionDispatch::Integration::Session.new(Rails.application)