我在没有基本的Ruby知识的情况下启动了Rails。
现在我在require, load, include, extend questions
我已经了解到如果它是一个单独的文件
在Ruby中,你必须包含require or load
'文件路径'
如果是这样的话,在我的application_controller
中需要有一堆要求,
如果我想要include
一帮助手。
离>
require 'path_to_the_helpera.rb'
require 'path_to_the_helperb.rb'
class ApplicationController < ActionController:Base
include HelperA
include HelperB
end
但众所周知,Rails应用程序中没有require
(lib
文件夹中的外部库除外)
我假设config
文件夹里面会有这种魔力....对我这样的菜鸟来说很难
答案 0 :(得分:2)
我在没有基本的Ruby知识的情况下启动了Rails。
这绝对不是最好的方法。
Rails大量使用约定。因此,如果您在/app/helpers
文件夹中放置一个帮助程序,并根据约定对其进行命名,它将自动加载并包含在您的应用程序中。
例如
# file /app/helpers/foo_helper.rb
module FooHelper
def print_foo
puts "foo!"
end
end
现在,您只需在视图中调用print_foo
即可。
答案 1 :(得分:2)
Rails添加了一个const_missing
钩子,这样当你引用一个卸载的常量时,它会首先尝试为你加载它,而不是引发一个NameError。
有一个rails guide广泛讨论了它是如何做到的,陷阱和提示但主要的是你需要用约定来命名内容,即一个名为{{1}的类或模块应该在rails的搜索路径中的一个文件夹中的foo_bar.rb中。