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. 【Android】编译报错 Annotation processors must be explicitly declared now 解决方案

    问题 在网上下载一个demo,因为版本久远,里面添加了本地 Butter Knife 的jar包,在编译时报错 Annotation processors must be explicitly dec ...

  2. windows上传ipa到苹果开发者中(app store)的方法

    假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开发者中心才能在构建版本里选择构建版本上架 ...

  3. Linux系统使用lvm扩展根分区

    Linux系统使用lvm扩展根分区 背景:买的云主机虚拟机封装镜像是40G的系统盘,后期适用不规范或者其他需求需要扩展系统盘,而非挂载在一个盘至新建目录. 1.原本目录磁盘等信息: 2.使用vgdis ...

  4. (10)-Python3之--引入

    1.什么是模块 .py文件就是模块 模块名有命名要求: 1.不要以数字.下划线开头.特殊符号.也不要以中文开头. 2.通常来说,都是以字母开头. 3.不要以关键字来命名.内置函数.内置模块.不要以第三 ...

  5. LVS负载均衡IP隧道模式原理介绍以及配置实战

    LVS 基本工作原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP,将数 ...

  6. 我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法

    我教你如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法 一.介绍 最近,我在写有关使用 Jenkins 搭建企业级持续集成环境的文章,准备了四台服务器,企业级别嘛,一台就 ...

  7. secure hashes message digests 安全哈希 消息摘要

    hashlib --- 安全哈希与消息摘要 - Python 3.8.3 文档 https://docs.python.org/zh-cn/3.8/library/hashlib.html hashl ...

  8. 学习Python之路

    陆续学习python已经有一段时间了,但是真正的安下心来学习还是在最近的一个月时间里,虽然每天学习的时间很有限,但是通过点滴的学习让自己感到从未有过的充实,完全打掉了以往认学学习一门语言难于登天的心理 ...

  9. HTML5 使用浏览器内置数据库之 indexedDB

    indexedDB是H5规范里的浏览器内置数据库,是nosql数据库的一种.因为另一种数据库Web SQL不再受W3C支持,所以还得学习下这个. 基本情况 兼容性:ie11及以上都支持, W3C是这么 ...

  10. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...