Ruby On Rails简介

以下文字基本 都是 复制粘贴一些重点内容
详情看文档吧:
https://guides.rubyonrails.org/v2.3.11/getting_started.html
https://ruby-china.github.io/rails-guides/

Basics

什么是Ruby

“Rails is a web development framework written in the Ruby language. It is designed to make programming web applications easier by making several assumptions about what every developer needs to get started.”

MVC架构

  1. Model是我的应用程序的数据以及处理这些数据的规则。在Rails中,model主要用来管理数据库中表的interaction。多数情况下,一张数据库中的table可以对应一个model。“The bulk of your application’s business logic will be concentrated in the models.”
  2. View就是你的应用程序的UI。在Rails中,views一般都是html的文件(with embedded Ruby code that performs tasks related solely to the presentation of the data). Views可以用来为你的项目提供数据,或者提供其他工具来帮你的项目发送请求。
  3. Controller控制器可以视作模型和视图的中间人,让模型中的数据可以在视图中使用,把数据显示给用户,再把用户提交的数据保存或更新到模型中。

Rails的组成

  1. Action Controller: “Action Controller 是 MVC 中的 C(控制器)。路由器决定使用哪个控制器处理请求后,控制器负责解析请求,生成相应的输出。Action Controller 会代为处理大多数底层工作,使用智能的约定,让整个过程清晰明了。”
  2. Action View:“通常,Action Controller 参与和数据库的通信,并在需要时执行 CRUD 操作,然后由 Action View 负责编译响应。Action View 模板使用混合了 HTML 标签的嵌入式 Ruby 语言编写。为了避免样板代码把模板弄乱,Action View 提供了许多辅助方法,用于创建表单、日期和字符串等常用组件。随着开发的深入,为应用添加新的辅助方法也很容易。”
  3. Active Record: “负责创建和使用需要持久存入数据库中的数据。Active Record 实现了 Active Record 模式,是一种对象关系映射系统。Active Record 模式:对象中既有持久存储的数据,也有针对数据的操作。Active Record 模式把数据存取逻辑作为对象的一部分,处理对象的用户知道如何把数据写入数据库,还知道如何从数据库中读出数据。”
  4. Action Mailer:“实现发送邮件功能,邮件由邮件程序和视图控制”
  5. Active Resource:提供商业对象和RESTful web服务之间的链接,“It implements a way to map web-based resources to local objects with CRUD semantics.”
  6. Active Support::“为了减轻应用的负担,默认情况下 Active Support 不会加载任何功能。Active Support 中的各部分功能是相对独立的,可以只加载需要的功能,也可以方便地加载相互联系的功能,或者加载全部功能。”

Rails项目结构分析

  1. README:使用须知。
  2. Rakefile:包含了可以在终端运行的batch jobs。
  3. app:包含了上文提到的MVC。
  4. config:项目的runtime rules, routes, databases, and more。
  5. db:数据库的schema 和 migrations。
  6. doc:项目具体的文档
  7. lib:Extended modules for your application
  8. log: Application log files.
  9. public: 放你的图片,html, css, JS 以及其他任何静态文件。
  10. script:do recurring tasks, such as benchmarking, plugin installation, and starting the console or the web server.
  11. test:单元测试
  12. tmp:临时文件
  13. vendor:存放第三方代码。在ruby中,主要包含Ruby Gems和Rails源代码(如果你有下载的话),以及其他插件。

Rails 范例程序

去Documentation看吧,不搬运了🙅‍♀️

注意事项:
基本每个Rails程序都会跟数据库打交道,要用的数据库要在config/database.yml文件中声明。如果你打开一个新的rails项目的config/database.yml文件,你会发现Default数据库是SQLite。而且会有三个不同的环境:development (used on your development computer as you interact manually with the application),test (The test environment is used to run automated tests),production(The production environment is used when you deploy your application for the world to use.)。

关于UI

UI 文档: https://guides.rubyonrails.org/v2.3.11/layouts_and_rendering.html#asset-tags

建立HTTP回应:

  1. Call render to create a full response to send back to the browser. “In most cases, the ActionController::Base#render method does the heavy lifting of rendering your application’s content for use by a browser. There are a variety of ways to customize the behavior of render. You can render the default view for a Rails template, or a specific template, or a file, or inline code, or nothing at all. You can render text, JSON, or XML. You can specify the content type or HTTP status of the rendered response as well.”
  2. Call redirect_to to send an HTTP redirect status code to the browser. “it tells the browser to send a new request for a different URL
  3. Call head to create a response consisting solely of HTTP headers to send back to the browser. “The head method exists to let you send back responses to the browser that have only headers. It provides a more obvious alternative to calling render :nothing. The head method takes one response, which is interpreted as a hash of header names and values.”

未完待续

  • 1
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

akihiro_the_coder

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值