Rails5入门

更新: 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
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

 

转载于:https://www.cnblogs.com/lancgg/p/8281846.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值