【问题标题】:Rails app object in console versus in scripts控制台与脚本中的 Rails 应用程序对象
【发布时间】:2013-11-17 02:40:11
【问题描述】:

我正在尝试在加载 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 命令行中如此不同?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-04
      • 2017-09-12
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      相关资源
      最近更新 更多