首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在rails 3控制器中运行外部.rb文件?

在rails 3控制器中运行外部.rb文件?
EN

Stack Overflow用户
提问于 2011-01-10 22:58:28
回答 2查看 4K关注 0票数 0

我在服务器索引目录中有一个rails 3控制器和一个非常简单的ruby (.rb)文件。我想在我的控制器内运行这个文件--什么是最好的方法?

EN

回答 2

Stack Overflow用户

发布于 2011-01-11 00:04:03

你可以试试loadhttp://www.ruby-doc.org/core/classes/Kernel.html#M001417

这里有一个例子

代码语言:javascript
运行
复制
# in your controller
def create
  load('/path/to/your/file.rb')
end

但是,我想说,通常通过运行外部脚本从Rails调用Ruby代码是不好的做法。我认为你最好把Ruby文件分成两部分:

将脚本的功能封装在类和/或模块中的

  1. ;从命令行调用上述类/模块的

然后,在Rails应用程序中,只使用require #1并使用类/模块。

例如,假设您的脚本当前名为simple.rb,如下所示:

代码语言:javascript
运行
复制
# simple.rb
puts 'Hello, world!'

然后创建hello_world.rb并执行以下操作:

代码语言:javascript
运行
复制
# hello_world.rb
class HelloWorld
  def say_it
    puts 'Hello, world!'
  end
end

您可以用以下内容替换simple.rb的内容:

代码语言:javascript
运行
复制
require 'hello_world.rb'
HelloWorld.new.say_it

然后,在控制器中,您可以绕过simple.rb,直接使用HelloWorld类:

票数 2
EN

Stack Overflow用户

发布于 2011-01-11 00:24:17

您想让脚本在它自己的进程中运行吗?如果是的话,看看这些。

http://codeforpeople.rubyforge.org/svn/bj/trunk/README

  • Or

  1. Also,您可以像这样使用脚本运行程序:

系统“RAILS_ENV=#{RAILS_ENV} ruby #{RAILS_ROOT}/script/runner 'MyModel.my_method(some_param)‘& "

最后,&将把任务放到另一个过程中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4652485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档