学习目的:
对一些主要的gem进行学习了解基本功能:
作者的一些答复:(链接)
关于安全配置:
对于配置文件, 安全仅有一点: 不要提交任何敏感信息到服务端. 所以 rails-template
是添加了一个 config/application.yml.example
, 随后由开发者自行复制一份为 config/application.yml
, 而此文件在 git
中是忽略的. 这是 rails-template
的集成方式.
在不同的生产环境, config/application.yml
由发布者在 mina setup
时自行配置即可. rails-template
在随后的发布过程自动软链接它, 保证每次新的发布使用同一份配置. 简明清晰的流程.
试(非系统默认):
factory_bot(熟练)
launchy(简单使用)save_and_open_page命令
font-awesome-sass(简单使用) 增加各类图标。
bootstrap4(新的版本,更强大没用过,gem 'bootstrap') (点击查看官方使用文档)
#这是Rubygem的如何安装连接:https://github.com/twbs/bootstrap-rubygem
simple_form:经过讨论simple_form的技倆完全可以用自己的方式写在helpers中,不过它的替换成本很低,很适合写后台用。所以作者集成了进来。
high_voltage 一个建立静态网页,about的小插件。
Figaro (没看)
slim 一种简写方式。
Sidekiq:点击进入自己写的博客
kaminari 一个分页器。 ✅简单实用,功能很强大,按需设置。
mina-deploy/ mina 一个快速部署的工具。 (点击转到相关博客)
puma (5300?) 一个Ruby/Rack网页服务,用于并发concurrency (点击看博客)
Lograge (2350?) “改良Rails默认的请求日志 “ (点击查看博客)
Database Cleaner
Database Cleaner是一系列的策略用于在Ruby中清洁数据库。开始的使用案例是在测试中用来确保一个干净的状态 。每个策略是一小段代码,这些策略通常被任何Ruby app需要用于和数据库的测试相关。
group :test do gem 'database_cleaner' end
对数据库,Libraries,和策略的支持,看readme。
如何使用
在测试前,需要一些策略需要先start,调用DatabaseCleaner.start,或者使用一个block,DatabaseCleaner.cleaning。
模版把配置放入了support/database_cleaner.rb中了
require 'database_cleaner' DatabaseCleaner.strategy = :transaction DatabaseCleaner.start # usually this is called in setup of a test dirty_the_db DatabaseCleaner.clean # cleanup of the test # OR DatabaseCleaner.cleaning do dirty_the_db end
Bootstrap Ruby Gem
下载后,需要进行一系列配置。
1. @import "bootstrap"; #在application.scss中,其他的全删除。
2. 它的JavaScript功能依赖JQuery。所以需要使用jquery-rails这个gem
3. 在application.js中加入
//= require jquery3 //= require popper //= require bootstrap-sprockets
英文文档结构及部分基本知识点摘录:
https://www.cnblogs.com/chentianwei/p/9207078.html
slim一种简写方式,暂时忽略
https://github.com/slim-template/slim
https://www.rubydoc.info/gems/slim/frames
high_voltage 一个建立静态网页,about的小插件。
安装usage,新建一个pages/about.html.erb。这里是写关于about的东东。
然后在任意位置加连接即可
<%= link_to 'About', page_path('about') %>
从80percent/rails-template下载的模版使用了slim,报告错误❌
补救,从新下载,然后rails db:reset后, rails s -> localhost:3000正常了✌️
Figaro
Simple, Heroku-friendly Rails app configuration using ENV
and a single YAML file
一个用于Rails环境配置的gem.
具体没有看。
⚠️:作者认为为了简明,安全的手法去集成80template,所以使用了figaro
Kaminari (7000?)
一个分页器。
特点:
- clean: 不会全局性的pollute
Array
,Hash
,Object
- easy to use, 只需要bundle gem,无需配置,无需在models or helpers中定义
- Simple 范围 的API
- 可以客制化
- 多web框架支持。多ORMs(面向对象的库),多模版支持(ERB, Slim, Haml)
- modern,更新快。默认输出<nav>? ⚠️不理解。helper支持rails Ajax
Query basics:
默认每页 25条记录,per_page
User.page(7) To fetch the 7th page of users (default per_page
is 25)
User.page(1).limit_value 返回限制的记录数
User.page.total_pages 返回总数
User.page(1).next_page 下一页的页数
User.page(2).prev_page 上一页的页数
first_page?和last_page?返回boolean
User.page(100).out_of_range? 返回true/false
Per方法:改变每页的记录数
User.page(1).per(10)
快速创建配置文件config/initializers/kaminari_config.rb
rails g kaminari:config
里面有一系列默认配置可以设定。如:config.default_per_page = 15
也可在model中添加(修改起来方便,无需重启服务器了):
paginates_per 50
或者直接在Controller中:
@users = User.order(:name).page(params[:page]).per(10)
在view中:
调用paginate helper, 会自动出现导航条。
<%= paginate @users %>
<%= link_to_next_page @items, 'Next Page' %> #出现next page的连接
相关连接的外观选项很多。可以自己定义。
如何改成中文:
rails g kaminari:views default
然后在新增的文件中进行修改。app/views/kaminari。
把link_to_unless的name选项改成中文字符串即可。这个是t('XXX').html_safe(用不到国际化)
rails g kaminari:views 可以显示能用的theme。如bootstrap4.
rails g kaminari:views Bootstrap4