使用80percent开发rails程序:gem的了解。(kaminari)

学习目的:

对一些主要的gem进行学习了解基本功能: 

 


 作者的一些答复:(链接)

 

关于安全配置:

于配置文件, 安全仅有一点: 不要提交任何敏感信息到服务端. 所以 rails-template 是添加了一个 config/application.yml.example, 随后由开发者自行复制一份为 config/application.yml, 而此文件在 git 中是忽略的. 这是 rails-template 的集成方式.

在不同的生产环境, config/application.yml 由发布者在 mina setup 时自行配置即可. rails-template在随后的发布过程自动软链接它, 保证每次新的发布使用同一份配置. 简明清晰的流程.

 

 


试(非系统默认): 

 

rspec-rails(熟练)

factory_bot(熟练)

capybara(熟悉) 

launchy(简单使用save_and_open_page命令

database_cleaner(陌生)

 


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.htm

 


 

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 ArrayHashObject
  • 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

 


 

posted @ 2018-06-21 09:05  Mr-chen  阅读(407)  评论(0编辑  收藏  举报