gpt4 book ai didi

ruby-on-rails - 为什么这个 gem 没有向 Rails 应用程序添加 rake 任务?

转载 作者:行者123 更新时间:2023-12-04 11:35:30 24 4
gpt4 key购买 nike

我们有 a gem它通过 Rake 任务运行。任务在 lib/tasks/<namespace>.rake 中定义.阅读后Rake tasks inside gem not being found我确认了.gemspec包括定义任务的文件;还有a railtie which should be including the tasks正如 including rake tasks in gems 中所建议的.然而我们的 Rails 4.1 应用程序似乎没有加载 Rake 任务。

我错过了什么?

最佳答案

我刚刚成功测试了您的 gem,我看不出其中的 rake 任务有问题:

  • 我加了 gem_fresh到 Gemfile 并运行 bundle ,gem安装
  • 我立即可以看到 rake 列表中的 rake :
    $ rake -T outdated
    rake gem_fresh:outdated # outdated
  • 然后我更新了 railtie.rb文件使用 load加载 lib/task/metrics.rake 中定义的 rake 的方法并再次搜索可用的 rake :
    # lib/gem_fresh/railtie.rb:
    rake_tasks do
    namespace :gem_fresh do
    desc "outdated"
    task :outdated => :environment do
    GemFresh::Reporter.new.report
    end
    end

    load "tasks/metrics.rake"
    end

    $ rake -T outdated
    rake gem_fresh:outdated # outdated
    rake metrics:outdated_gems # display outdated gem version metrics

  • 所以,我看不出你的 gem 有问题。 railtie 中的两种方法(inline rake 以及使用 load 方法)似乎都可以正常工作。我注意到的唯一区别是我在 rails 4.2 上测试了这个,但我很怀疑这会有所作为。

    你把 gem 放进你的 Gemfile 了吗? 如果我从那里删除它,我确实看不到 gem_fresh rake 定义。

    关于ruby-on-rails - 为什么这个 gem 没有向 Rails 应用程序添加 rake 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851163/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com