【问题标题】:How to access variables across multiple rake tasks with Ruby on Rails如何使用 Ruby on Rails 跨多个 rake 任务访问变量
【发布时间】:2013-08-07 16:22:43
【问题描述】:

我看到了一些似乎对我不起作用的解决方案。假设我有以下代码-

  namespace :genie do

    task :test => :environment do
      test_user = User.find_or_create_by_username('test') do |i|
          i.email = 'email@email.com'
    end

    task :test_reset => :environment do

      test_user.update_attributes({
        :email => 'test@email.com',       
      })

    end

此代码在运行 rake genie:test, rake genie:test_reset 时失败,因为在第二个 rake 任务中未定义 test_user。如何调用 test_user 而不必每次都定义?

【问题讨论】:

    标签: ruby-on-rails ruby variables namespaces rake


    【解决方案1】:

    您可以将用户的定义封装在辅助函数中。

    namespace :genie do
      task :test => :environment do
        puts test_user.email
      end
    
      task :test_reset => :environment do
        test_user.update_attributes({
          :email => 'test@email.com',       
        })
      end
    end
    
    def test_user
      User.find_or_create_by_username('test') do |i|
        i.email = email@email.com
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 2011-04-08
      相关资源
      最近更新 更多