Don't Repeat Yourself!

Convention Over Configuration.

REST.


  1. Rails框架总览。

  2. Rails框架基本使用。

  3. Rails框架数据交互。

  4. Rails框架前端开发。


 1.yum安装:
  yum install rubygems ruby-devel
  查看版本:ruby -v
 2.更换gem源:
  查看gem源:gem sources -l
  http://rubygems.org/
  删除gem源:gem sources --remove
  更换gem源:
  gem sources -a http://mirrors.aliyun.com/rubygems/
  gem sources -a http://ruby.taobao.org/
 3.RVM安装:
  从官方文档安装。
 4.ruby升级:
  查看可升级版本:rvm list known
 ​
 可能会遇到的问题:
 node not found
 webpacker requires Node.js">=10.17.0"and you are using v4.2.6
 please upgrade NOde.js http:nodejs.org/en/download/
 解决方法:
 更新Node.js
 sudo n latest
 或者使用bundle进行更新

Rails应用安装

 rails new blog --skip-bundle
 bundle:集中管理Gem包,换成 http://ruby.taobao.org
 bundle install
 rails server

Rails添加控制器和action

generate

destory

路由设置:routes.rb

Rails路由文件:请求查询表 rake routes

Rails路由的基本功能:

  1. 接收并识别HTTP请求。

  2. 处理URL附加参数。

  3. 识别link_toredirect_to

Rails路由的种类:

  1. 一般路由。

  2. 命名路由。

  3. 资源路由。resources :posts 一般使用

添加资源路由扩展:

  1. 集合路由:posts/recent collection

  2. 成员路由:posts/:id/recent menber

REST:资源表现状态转化。

标准化URL。

扩展性强,RESTful应用程序。

跨平台。

7种常见资源访问方式:index,create,show,new...

Rails脚手架:

 rails generate scaffold

数据迁移:

 bundle exec rake db:migrate

Rails数据交互:

控制台:rails console

ActiveRecord类:

基本使用方式。

模型的添加和管理:

  1. 用户模型。

  2. 数据的创建和存储。

  3. 数据的访问。

数据验证(validates):

  1. 存在性验证:presence :true

  2. 长度验证:length :{maxinum:20}

  3. 格式验证:format :{with 常量(正则表达式)}

  4. 唯一性验证:uniqueness :{case_sensitive :false}

登录表单session

数据关联:

 rails generate migration add_user_id_to_posts user_id:id
 数据表关联:
 belongs_to
 has_many

Rails前端模板,动态生成HTML页面。

erb后缀:

Embedded Ruby

<%= %>:用于页面显示。 控制器和视图的变量传递。

<% %>:用于逻辑判断。

局部视图,组织方式。

rails heapers方法:辅助函数。

rails中使用coffescript:

rails中使用js

rails前端脚本开发:

  1. railsjs文件夹。

  2. coffescript $->。

  3. 使用js库,加入到lib文件夹中,然后require xxx引用。

rails中使用scss

scsscss扩展出的一种,可以嵌套,方便使用。

Assets Pipeline

前端优化的重要性。

为什么使用Assets Pipeline

  1. 文件打包压缩。

  2. 使用sasscoffeescript

Assets pipeline的运行方式:

结构:

app/assets

lib/assets

vender/assets

application.js

require_tree.

require_dictionary

......

javascript_include_tag

rails环境配置:

三种运行环境:

  1. Development

  2. Test

  3. Production

修改运行环境:

  1. Rails_ENV

  2. 自定义运行环境

开发模式:

cache_classes

consider_all_requests_local

生产模式:

cache_classes

consider_all_requests_local

bundlegemfile:

bundle:

  1. gem包管理。

  2. 依存关系。

  3. 版本一致性。

gemfile

  1. 明确每一个gem的版本。

  2. 版本号的含义。

bundle命令:

  1. bundle install——>Gemfile.lock

  2. bundle update gem_name

  3. bundle update

  4. bundle outdated

rails测试:

为什么要编写测试:

  1. 保证功能的可用性。

  2. 重构代码的安全性。

    先写测试还是先写功能?

    1. 测试代码较为简短。

    2. 功能不清楚。

    3. 安全性功能。

    4. 发现问题在先。

    5. 经常变动的代码。

    6. 重构代码之前——>功能一样,实现方式不一样。

Rails框架学习的更多相关文章

  1. Ruby on Rails框架开发学习

    学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...

  2. 通过Ruby On Rails 框架来更好的理解MVC框架

    通过Ruby On Rails 框架来更好的理解MVC框架   1.背景    因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...

  3. Ruby on Rails框架(1)-安装全攻略

    序 关于Rails的三句箴言 (1)DRY:Don't Repeat Yourself(不要重复你自己) rails的开发理念,不要用你的代码不停的重复,rails框架给开发者提供了一套非常完善的支持 ...

  4. IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

    IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...

  5. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  6. Spring框架学习一

    Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...

  7. EF框架学习手记

    转载: [ASP.NET MVC]: - EF框架学习手记 1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架 ...

  8. web框架学习列表

    转载自鲁塔弗的博客,原文网址:http://lutaf.com/148.htm web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的 ...

  9. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

随机推荐

  1. python的Counter类

    python的Counter类 Counter 集成于 dict 类,因此也可以使用字典的方法,此类返回一个以元素为 key .元素个数为 value 的 Counter 对象集合 from coll ...

  2. numpy模块(详解)

    重点 索引和切片 级联 聚合操作 统计操作 矩阵 什么是数据分析 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 数据分析是用适当的方法对收集来的大量数据进行分析,帮助 ...

  3. ovsdb-client命令

    ovsdb-server 的命令行接口. 查看有哪些数据库: ovsdb-client list-dbs [server] 查看数据库 schema: ovsdb-client get-schema ...

  4. CISCO 如何重置3850交换机密码

    SUMMARY STEPS: Connect a terminal or PC to the switch. Set the line speed on the emulation software ...

  5. (Oracle)关于blob转到目标库报ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误解决方案

    在数据抽取时,开发需要clob类型的数据,但是目标库类型是blob类型的,于是抽取的时候报错: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值错误 可能有以下几种原因: 可能有以下 ...

  6. 获取当前文件路径 import 原理 一般把模块组成的集合称为包(package)

    获取当前文件路径 testpath.py import sysprint(sys.path) [root@d mapReduceLog]# python testpath.py['/data/mapR ...

  7. 一个关于ExecutorService shutdownNow时很奇怪的现象

    我们知道很多类库中的阻塞方法在抛出InterruptedException后会清除线程的中断状态(例如 sleep. 阻塞队列的take),但是今天却发现了一个特别奇怪的现象,先给出代码: publi ...

  8. Kafka踩坑填坑记录

    Kafka踩坑填坑记录 一.kafka通过Java客户端,消费者无法接收消息,生产者发送失败消息 二. 一.kafka通过Java客户端,消费者无法接收消息,生产者发送失败消息 在虚拟机上,搭建了3台 ...

  9. Linux常用命令详解(第一章)(ls、man、pwd、cd、mkdir、echo、touch、cp、mv、rm、rmdir、)

    本章命令(共11个): 1 2 3 4 5 6 ls man pwd cd mkdir echo touch cp mv rm rmdir 1. " ls " 作用:列出指定目录下 ...

  10. Angular写一个Form组件-TagInput

    前端开发少不了和表单打交道; Angular中, 提供了强大的表单的支持, 响应式表单(Reactive Form) 和 模板驱动的表单(Template-driven Form) 的双向数据流给我们 ...