我刚开始学习Rails和Ruby。在http://guides.rubyonrails.org/getting_started.html上的Ruby on Rails指南说Rails由许多不同的“组件”组成。其中一些组件,例如ActiveRecord和ActionController,我在我的Rails应用程序中遇到过(分别在模型和控制器中)。
相关语法(“类Model< ActiveRecord :: Base”和“类ApplicationController< ActionController :: Base”)使它看起来像这些组件是Ruby模块,但如果它们是位于文件中的模块?如何在不首先使用Ruby方法“require”的情况下引用它们?
更新:所以我找到了所有内置模块和类。在我的服务器上,ActiveRecord模块的Base类的路径(例如)是:
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.9/lib/active_record
但是我仍然不知道为什么我们可以在我们的模型和控制器中引用这些模块和类而不首先使用Ruby的require方法。
答案 0 :(得分:10)
Rails 组件是默认情况下包含在application.rb
require rails/all
中的模块:
validates :name, presence: true
)中提取的非数据库功能[].blank?
)答案 1 :(得分:8)
转到此页面Github Rails Page,在每个页面下,您都会详细解释其用途。
答案 2 :(得分:6)
Rails组件:
答案 3 :(得分:5)
在您的rails应用中,这些都是require
d。例如,如果您在应用程序中通过script/rails command
运行rails命令,script/rails
需要config/boot
,需要bundler
,然后执行Bundler.setup
,这需要所有您Gemfile
中的宝石。