gpt4 book ai didi

ruby-on-rails - rails bin/rails 文件如何/做什么

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:19 25 4
gpt4 key购买 nike

现在,我对 Rails 的使用已经够多了,知道 rails 命令做什么,但如何让我感兴趣。

bin/rails文件(来自github)如下:

#!/usr/bin/env ruby

begin
require "rails/cli"
rescue LoadError
railties_path = File.expand_path('../../railties/lib', __FILE__)
$:.unshift(railties_path)
require "rails/cli"
end

据我所知(如果我错了请纠正我),require 不运行代码,只加载类等。

我也找不到它们 gem 的根目录中的 rails 目录,所以我也有点困惑它隐藏在哪里。

谢谢。

最佳答案

require 确实运行代码。这将包括所需文件中任何类和模块之外的任何代码,以及方法声明之外的类和模块中的任何可执行代码。作为neutrino已经说过,ruby 解释器正在运行所需文件中的代码,以便在源代码中定义类。但是,如果您尝试使用具有明显副作用的东西(例如 puts 语句),这可能会更清楚一些。

试试这个作为一个简单的例子。创建一个包含 puts "Hello World" 的文件 hello.rb 然后进入 irb:

irb(main):001:0> require 'hello'
Hello World
=> true

接下来,试试这个在其主体中包含一些可执行代码的简单类示例。创建一个文件 hello2.rb 包含:

class Hello
puts "class Hello being defined"
end

然后从 irb 要求这个:

irb(main):001:0> require 'hello2'
class Hello being defined
=> true

回到bin/rails,看看source for rails/cli在 Github 中了解其工作原理。

关于ruby-on-rails - rails bin/rails 文件如何/做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156957/

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