【问题标题】:Get 'import' error when trying to import .rake file in ruby尝试在 ruby​​ 中导入 .rake 文件时出现“导入”错误
【发布时间】:2013-05-30 13:36:59
【问题描述】:

我一直在尝试使用 import 'file.rake' 将 .rake 文件导入我的控制器,但我似乎收到一条错误消息,提示 Main:object 的未定义方法 'import'。我试图在网上查找有关如何使用导入的任何文档,但我找不到任何东西。有没有人有解决方案或以前遇到过这个错误?

提前致谢。

【问题讨论】:

  • 您能否为您想要实现的目标提供更多背景信息?
  • 你能更详细地解释一下你想做什么,因为在控制器中加载一个 rake 文件看起来很可疑。
  • 除此之外,import 不是 Ruby 核心中的方法 - 它存在于 Rake 库中以允许包含 rakefile。
  • 我的控制器控制着我填写的表格,我试图在控制器完成后激活 .rake 文件,我还将把新客户的 id 传递给 .rake 文件控制器告诉 .rake 文件它是一个新客户。所以我试图将 .rake 文件导入控制器,这样我就可以将 id 传递给它并运行它。
  • 你的 rakefile 在做什么?听起来您可能正在尝试以一种非常不寻常的方式做某事,并且可能有更好的方法。

标签: ruby-on-rails ruby ruby-on-rails-3.1 require


【解决方案1】:

您可以通过以下几种方式阅读此处:Run rake task in controller

但我真的不推荐他们。如果你发现需要在你的应用程序中运行一些额外的代码,那么突破到控制台并不是这样做的方法。将代码写入您的应用程序,可能是在一个 lib 文件中,然后调用它。

你甚至可以让你的 rake 文件调用相同的 lib 方法,这样你就可以干了。

在lib文件夹中添加一个代码文件,把所有的逻辑都放在那里

module ExtraActions
  def method_that_does_logins
    ...
  end
end

将其包含在您的控制器中:

UsersController < ApplicationController
  include ExtraActions

  def create
    ... #normal code
    method_that_does_logins
  end
end

【讨论】:

    【解决方案2】:

    我认为您可能以错误的方式处理此问题。为什么 Rakefile 中有这个功能?

    Rake 相当于 Ruby 的 make - 它旨在处理具有依赖关系的软件任务,例如构建应用程序或打包发布 Rubygem。甚至Wikipedia 也有很好的描述它的用途,或者查看this answer 以获得链接转储。

    你所描述的听起来像是普通的 Rails 东西——接受网络输入,对其采取行动,与数据库交互。我会认真考虑在 Rails 中重写你的 Rake 任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      相关资源
      最近更新 更多