更新: 2017/05/29

更新: 2017/09/07 补充对ruby自身的扩张的放置位置
 配置文件位置  /config/routes.rb
 最简单的定义方法

 get ('hello/index', to: 'hello#index') 
 请求接入1时,呼出2方法
 两者一样时,可以省略第二个参数
 get ('hello/index')
 自动配置路径
 routes.rb
 resources: controller-name
 
 
 
 
 
 
 
 
 迁移
 migration
 表格的生成与修改
 迁移文件: 为表格的生成与修改准备的文件
 位置/db/migrate/20170527032900_create_books.rb
   
   
   
   
 视图控制器  controller
 视图控制器位置  /app/controllers/.....rb
 例子/app/controllers/sample_controller.rb
 P28
   
   
   
   
   
 视图  view
 视图位置
 视图位置   /app/view/控制器名/方法名.rb
 例子 /app/view/sample/action.html.erb
 注意:后缀html.erb
   
   
   
   
   
   
 视图方法
 超链接

 方法定义  link_to(body, url [, html_option])
 参数含义

 body: 链接的文字
 url: 网址(或者参数)
 html_option: 对《a》指定的属性
 例: class: 'sample' , title: 'also a sample'
 特殊的网址参数
     对象
 《% @books.each do |book| %》
 《td》《%= link_to 'Show', book %》《/td》
 《% end %》
 链接对象是Book类的对象,Rails会获取book.id
 然后链接目标(リンク先)的路径和book.id相同
 也就是.../1, 2, 3 ...
 .../为现在路径
 视图助手
 view helper

 路径设置
 /config/routes.rb 
 resources: controller-name
 自动设置路径后
 会自动生成如下方法
 
   
 books_path   /books
 注
 book_path(id)  /books/:id 
 new_book_path   /books/new
 edit_book_path(id)  /books/:id/edit
   
   
   
 
     可选

弹出确认窗口

 data-confirm

 data: {confirm: ' your message'}  
   
   
   
   
   
 可选 
指定HTTP方法
 method: delete
 放在option里
   
   
   
   
   
   
   
   
   
 执行前呼出

 方法定义   before_action method, only: action
 参数含义

 method 方法的标签
 例   :sample
 only: 需要设置预处理的函数标签的数组
 例   [:sample1, :sample2,
...]
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 输出 

 定义  render (partial:) 'template', 参数:值
 组块模板(partial template)  命名规则_sample.htm.erb
 开头带_
 参数含义  (partial:) 'template' 开头可省略,指定组块模板
 参数:值   传入组块模板里的参数和附加的值
   
   
 可选
 status  应答时使用的HTTP状态
 为标签
 :unprocessable_entity
 location  表示资源位置的url
   
   
   
   
   
   
   
   

   
   
   
   
   
   
   
   
   
   
   
   
   
   
 生成表格

 定义  form_for(model) do |f|
   ...
 end
 参数含义

 model 模块对象(数据库单元对象)
 ... 表格本体
 
 
 
 
 
 
 
 
 
   
   
 f.label  
 f.text_field  f.text_field :property
 f.date_select  
 f.check_box  
 f.submit  
   
   
   
   
   
   
   
   
   
   
   
 获取post数据  param.require(:ModelName).permit(:test1,
test2, ...)
 :ModelName    
模块的名字标签
 :test1, test2, ...  数据的名字标签
 数据保存  模块对象.save
 例:   book.save
 返回 true/false
 重定向

 定义  redirect_to url [, option]
 例:
redirect_to @book, notice: 'Book was successfully created.'
  
 参数含义
 url  地址
 option 各种可选

 option

 notice:  指定重定向时传递的信息
 可想本地变量一样读取
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 数据更新

 定义  模块对象.update(attrs)
 返回值: true/false
 参数含义  模块对象:模块类的实例
 attrs: [property-name: value,
...] 
 
 注意  使用前必须先选定
 模块类.find
   
   
   
   
   
   
   
 数据搜索与
 选定

定义   ModelClass.find(params[:id])
 ModelClass 模型类
 params[...] 获取经由URL获得的量
 params[:id]获得页面索引号
   
   
   
   
   
   
   
   
   
 返回状态
 P97
 head status
 status: 响应的结果
 例 head :no_content 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

   
   
   
   
   
   
   
   
   
   
   
   
 模块  model
 位置
 模块类  /app/models/samples.rb
 
 迁移脚本  /db/migrate/20161013021716_create_samples.rb
 测试数据  /test/fixtures/samples.yml
 测试脚本  /test/models/samples_test.rb
   
   

 数据库配置文件
 database.yml
 
 YAML格式(YAML Ain't Markup Language)

 位置  config/database.yml
 值设定  参数名: 值
 例子:

 production: 1  
 production:
    a: 1
    b: 2
 
 production: &test
   a: 1
   b: 2
   c: 3
 设定别称
  <<: *test  呼出整个部分
   
 三个模式

 默认设置,
其他地方
会参照 
default: &defalut
   adapter:sqlite3
   pool: 5
   timeout: 5000
 开发模式 development:
  <<: *default
 database: db/development.sqlite3
 测试模式  test:
  <<: *default
 database: db/development.sqlite3
 产品模式  production:
  <<: *default
 database: db/development.sqlite3
   
可设定的值   不同数据库有不同的可能

 adapter  数据库种类
 sqlite3, mysql2, postgresql...
 database  数据库名
 SOLite则为数据库路径
 host  主机名/IP地址
 port  接口号
 pool  预备连接池
 timeout  连接限制时间(单位毫秒)
 encoding  使用的文字编码
 username   用户名
 password  密码
 socket   套接字(/tmp/mysql.sock)等
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 生成数据库  rails db:migrate
 不需要任何参数
 读取测试数据  rails db:fixtures:load FIXTURES=samples
   
   
   
   
   
   
 数据库相关方法  
 搜索

定义   ModelClass.find(params[:id])
 ModelClass 模型类
 params[...] 获取经由URL获得的量
 params[:id]获得页面索引号
   
   
   
   
   
   
   
   
   
 数据保存  模块对象.save
 例:   book.save
 返回 true/false
 数据更新  
   
   
   
   
   
   
 配置文件  /config/
 总览

 /config      
   application.rb   所有环境的共同设定 
   routes.rb    路径设定
   /enviroment    每个环境的设定
     development.rb  开发者模式
     test.rb  测试模式
     production.rb  产品模式
   /initializers    初始化
     assets.rb  编译对象声明
     backtrace_silencers.rb   
     cookies_serializer.rb  签名,密码的序列号
     filter_parameter_logging.rb  从日志除外的参数信息
     inflections.rb  单复数规则
     mime_types.rb  可使用的内容类型
     new_framework_defaults.rb  默认值被改变的参数
     session_store.rb  
   /locales    为了国际化的资源文件
   自己添加的    
       
       
 设定方法  config.参数名 = 值
 主要可设定参量

 基本  cache_class 应用类要不要缓存
默认
dev false
test true
prod true 
   cache_store 缓存保存位置
:memory_store
:file_store
:mem_cache_store
   colorize_logging  是否对日志上色
 默认 true
   autoload_paths  
   asset_host   
   log_level  
   logger  
   log_tags  
   time_zone  
   i18n.default_locale  
   
 Active Record  active_record.logger  
   active_record.schema_format  
   activer_record.timestamped_migrations  
     
 Action Controller  action_controller.logger  
   action_controller.perform_caching   
   session_store  
     
 Action View  action_view.default_form_builder  
   action_view.logger  
   action_view.field_error_proc
   
 读取  YMAL.load(
 File.read("#{Rails.root}/config/my_config/yml")

)[Rails.env]
 含义:
读取文件,并且把当前环境[Rails.env]下的信息取出来

   
   
   
   
 模板文件位置  /app/views/控制器名/
 自己新建,方法名.html.erb
 插入代码
 插入代码  《% ... %》
 打印值  《%= ... %》
 注释

普通注释  《%# ... %》
 内部注释
 一行
 #
 跨行注释  《% if false %》 ... 《% end %》
 跨行注释
 =在行头
 《%
  =begin
   ...

=end
   %》

 html标准注释
 对客户端可见
 《!-- ... --》
 url匹配模式

/books/:id(.:format)

:开头的是占位符

:id   id号

:format 格式,默认html

带()的可省略(即有默认值)

 任务注释

 格式  # TODO: ...
 # FIXME: ...
 # OPTIMIZE ...
 查看   rails notes
 个别查看  rails notes:todo
 rails notes:fixme
 rails notes:optimize
   
   
   
   
   
   
   
   
 对ruby自身的扩张  位置 /config/initializers/
 内部自己随意放,我个人
/config/initializers/extention/xxxx.rb
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

Rails5入门的更多相关文章

  1. rails5 后台入门(api mode)

    1. Installation (Centos为例) 1.1安装rvm (http://rvm.io/) gpg2 --recv-keys 409B6B1796C275462A1703113804BB ...

  2. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  5. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  6. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  7. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  8. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  9. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

随机推荐

  1. LIBSVM使用方法及参数设置

    LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换--------- ...

  2. Java面向对象学习-----类的成员变量

    类的成员变量: 猜数字游戏:一个类A有一个成员变量v,通过随机产生一个100内的整数给v赋值.定义一个方法,对A类的成员变量v进行猜.   没有猜对的情况下提示如果大了则提示大了,小了则提示小了,并且 ...

  3. [bzoj2229][Zjoi2011]最小割_网络流_最小割树

    最小割 bzoj-2229 Zjoi-2011 题目大意:题目链接. 注释:略. 想法: 在这里给出最小割树的定义. 最小割树啊,就是这样一棵树.一个图的最小割树满足这棵树上任意两点之间的最小值就是原 ...

  4. Java日期LocalDate使用

    在做报表统计时,需要对指定时间内的数据做统计,则需要使用到时间日期API 在此使用的是java.util.Date的完美私生子LocalDate类 LocalDate方法介绍 now() : 从默认时 ...

  5. 洛谷 P2033 Chessboard Dance

    P2033 Chessboard Dance 题目描述 在棋盘上跳舞是件有意思的事情.现在给你一张国际象棋棋盘和棋盘上的一些子以及你的初始位置和方向.求按一定操作后,棋盘的状态. 操作有四种,描述如下 ...

  6. atom的react自动补全插件

    atom-react-autocomplete–项目内,组件名及状态的自动补全 autocomplete-js-import–模块导入智能提示 emmet-jsx-css-modules– React ...

  7. 在ASP.NET Core 中使用Cookie中间件 (.net core 1.x适用)

    在ASP.NET Core 中使用Cookie中间件 ASP.NET Core 提供了Cookie中间件来序列化用户主题到一个加密的Cookie中并且在后来的请求中校验这个Cookie,再现用户并且分 ...

  8. 合并链表 —— 剑指Offer

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.     思路: 也在考虑能不能更优雅的代码写法,但是最后,还是两边都写一下,能增加代码清晰度. ...

  9. Android Jni Android.mk经常使用语句

    仅仅要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言. 以上一篇博客中提供的project为例! <1> : 信息打印 : 既然是一种简易语言那么首先应该知 ...

  10. powerShell赋权限

    1.给网站赋权限 Set-SPUser –Identity “用户名” –AddPermissionLevel “参与讨论” –web “http://url” 2.给列表赋权限 $web = Get ...