Rails框架学习
Don't Repeat Yourself!
Convention Over Configuration.
REST.
Rails框架总览。Rails框架基本使用。Rails框架数据交互。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路由的基本功能:
接收并识别
HTTP请求。处理
URL附加参数。识别
link_to和redirect_to。
Rails路由的种类:
一般路由。
命名路由。
资源路由。
resources :posts一般使用
添加资源路由扩展:
集合路由:
posts/recentcollection成员路由:
posts/:id/recentmenber
REST:资源表现状态转化。
标准化URL。
扩展性强,RESTful应用程序。
跨平台。
7种常见资源访问方式:index,create,show,new...
Rails脚手架:
rails generate scaffold
数据迁移:
bundle exec rake db:migrate
Rails数据交互:
控制台:rails console
ActiveRecord类:
基本使用方式。
模型的添加和管理:
用户模型。
数据的创建和存储。
数据的访问。
数据验证(validates):
存在性验证:
presence :true长度验证:
length :{maxinum:20}格式验证:
format :{with 常量(正则表达式)}唯一性验证:
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前端脚本开发:
rails的js文件夹。coffescript$->。使用
js库,加入到lib文件夹中,然后require xxx引用。
rails中使用scss:
scss是css扩展出的一种,可以嵌套,方便使用。
Assets Pipeline:
前端优化的重要性。
为什么使用Assets Pipeline:
文件打包压缩。
使用
sass和coffeescript。
Assets pipeline的运行方式:
结构:
app/assets
lib/assets
vender/assets
application.js
require_tree.
require_dictionary
......
javascript_include_tag
rails环境配置:
三种运行环境:
DevelopmentTestProduction
修改运行环境:
Rails_ENV自定义运行环境
开发模式:
cache_classes
consider_all_requests_local
生产模式:
cache_classes
consider_all_requests_local
bundle与gemfile:
bundle:
gem包管理。依存关系。
版本一致性。
gemfile
明确每一个
gem的版本。版本号的含义。
bundle命令:
bundle install——>Gemfile.lockbundle update gem_namebundle updatebundle outdated
rails测试:
为什么要编写测试:
保证功能的可用性。
重构代码的安全性。
先写测试还是先写功能?
测试代码较为简短。
功能不清楚。
安全性功能。
发现问题在先。
经常变动的代码。
重构代码之前——>功能一样,实现方式不一样。
Rails框架学习的更多相关文章
- Ruby on Rails框架开发学习
学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- Ruby on Rails框架(1)-安装全攻略
序 关于Rails的三句箴言 (1)DRY:Don't Repeat Yourself(不要重复你自己) rails的开发理念,不要用你的代码不停的重复,rails框架给开发者提供了一套非常完善的支持 ...
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...
- Hadoop学习笔记—18.Sqoop框架学习
一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...
- Spring框架学习一
Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...
- EF框架学习手记
转载: [ASP.NET MVC]: - EF框架学习手记 1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架 ...
- web框架学习列表
转载自鲁塔弗的博客,原文网址:http://lutaf.com/148.htm web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的 ...
- 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理
Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...
随机推荐
- Flink 中极其重要的 Time 与 Window 详细解析(深度好文,建议收藏)
前言 Flink 是流式的.实时的 计算引擎 上面一句话就有两个概念,一个是流式,一个是实时. 流式:就是数据源源不断的流进来,也就是数据没有边界,但是我们计算的时候必须在一个有边界的范围内进行,所以 ...
- 使用remix实现给合约账户转账
实现内容:从remix上的虚拟账户上转账给自己编写的智能合约账户 前提基础:对solidity有一些基础了解,对以太坊的账户机制有一定了解. 账户 在以太坊中账户的唯一标识是地址(address). ...
- Vue基础之用插值表达式在视图区显示数据
Vue基础之用插值表达式在视图区显示数据 第一步:当然就是你要引入Vue.js这个脚本文件啦! <script src="https://cdn.jsdelivr.net/npm/vu ...
- Elasticsearch如何保证数据不丢失?
目录 如何保证数据写入过程中不丢 直接落盘的 translog 为什么不怕降低写入吞吐量? 如何保证已写数据在集群中不丢 in-memory buffer 总结 LSM Tree的详细介绍 参考资料 ...
- java调用shell脚本执行操作
//定时清空 日志 String shellString = "sh /home/jyapp/delete_log.sh"; Process process = Runtime.g ...
- Java反射应用--2
Java反射开窍第一篇 明天再写
- 将jekyll博客主页的超链接变为新标签页打开
将jekyll博客主页的超链接变为新标签页打开 最近发现在打开博文查看时往往不想关闭当前页面,想新建一个页面打开,查了HTML资料以后进行修改 在根目录找到index.html,打开编辑,找到图示&l ...
- 提升NginxTLS/SSL HTTPS 性能的7条优化建议
自2018年7月起,谷歌浏览器开始将" HTTP"网站标记为"不安全".在过去的几年中,互联网已经迅速过渡到HTTPS,Chrome浏览器的流量超过70%,并且 ...
- 搭建tdh平台
1.卸载tdh平台(见tdh集群卸载文件夹) 在manager节点执行chmod +x uninstall.sh (非root用户执行sudo chmod +x uninstall.sh)开始卸载TD ...
- Codeforces Global Round 11 C. The Hard Work of Paparazzi(dp/最长上升子序列)
题目链接:https://codeforces.com/contest/1427/problem/C 题意 \(r\) 行与 \(r\) 列相交形成了 \(r \times r\) 个点,初始时刻记者 ...