我正在学习 Ruby on Rails 几个星期,遵循一些教程和小文章。您能否推荐一些文章或视频教程,对项目结构进行良好的高级概述,其中还包括事物如何相互连接(模型、视图、控制器、资产等)以形成 Web 应用程序?我想我深入细节而不了解基础知识。
4 回答
30.000 英尺的概述是 Rails 很像 Magic :)
您应该知道很多约定,但它们都是不言自明且简单的。
首先:您不需要在 Rails 应用程序中连接任何东西——Rails 通过约定为您做到这一点。
所以首先是文件夹结构。
您的应用程序位于/app
目录中,配置位于/config
. 内部的数据库文件和迁移/db
等../public
是所有不受 Rails 管理的东西的地方(robots.txt
静态内容等)。
在里面/app
你通常会有:
app
- assets
- controllers
- models
- views
资产是应用程序的 JavaScript、CSS 和图像文件所在的位置。
控制器是放置控制器的地方。这里的约定如下:
ApplicationController
派生自ActionController::Base
所有应用程序控制器的基类,并且旨在作为基类。当控制器的名称与其类名匹配时,控制器会立即加载。所以ApplicationController
预计会在里面声明application_controller.rb
。另一个样本将是一个PostsController
进入posts_controller.rb
文件的样本。
这里的约定也是管理许多事物(帖子、客户、链接......)的控制器是复数的,而像个人资料、帐户这样的单数资源是单数的——但这并不是真正的硬性规则。
模型是 ActiveRecord 模型所在的地方,它们被定义为简单的类,扩展ActiveRecord::Base
并与它们的类名进入相同的文件:Post
进入post.rb
,User
进入user.rb
。
Views有点特殊,因为它包含基于每个控制器的子文件夹。因此,如果您有 aPostsController
和 a ,CommentsController
那么您将在/views
:posts
和comments
.
在这些视图文件夹中,您将放置与控制器内的操作(方法)相对应的文件。所以通常你会有一个index.html.erb
文件,当index
控制器上的方法被调用时,它会被渲染。
正如您所看到的,这就是魔法发生的地方,您只需要以正确的方式命名,Rails 就会自行解决问题。您必须明确执行某些操作才能使其工作的唯一特殊情况是路由。
路由进入/config/routes.rb
,该文件用于告诉 Rails 应用程序哪些 url 映射到控制器中的哪些操作。但我建议您在 Rails 指南或其他人在此问题中发布的众多教程中查找。
如果您是 Rails 新手,那么您应该遵循这个基本教程。 http://guides.rubyonrails.org/getting_started.html
试试这个资源,我发现它很有用。