首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

几种实用型Ruby Web开发框架介绍

大家在通过Ruby学习后,都知道,Ruby on Rails是一款性能非常优越Ruby Web开发框架。但是其他Ruby Web开发框架又有多少人知道一二呢?   ...本文这些框架进行一个快速浏览,并试图解读他们为业内人士欣赏(或忽视)原因。   之前我们讨论过Merb,这也许是完成度最高Rails替代者。...一个完整web应用可以在单一文件中定义,同时遵循MVC框架(这使得web应用以后更易于移植到Rails之上)。...API实现、快速最小化应用以及那些不需要Rails功能(比如ActiveRecordweb应用开发。可以用来对面板最小应用进行控制,或者是widget。   ...即使这些框架可能缺乏文档,甚至有些框架不具备这么多功能、流行程度、Rails使用等,它们仍然值得一看。

2.4K00

总结Web应用中常用各种Cache

:etag => [@article.cache_key, current_user_favorited] 另外提一个坑,如果nginx开启了gzip,rails执行结果进行压缩,会将rails输出...etag header干掉,nginx开发人员说根据rfc规范,proxy_pass方式处理必须这样(因为内容改变了),但是我个人认为没这个必要,于是用了粗暴方法,直接将src/http/modules...动态请求静态文件化 在rails请求完成以后,将结果保存成静态文件,后续请求就会直接由nginx提供静态文件内容,用after_filter来实现一下: class CategoriesController...,处理这种生成静态文件缓存可以用内置caches_page, rails 4之后变成了一个独立gem actionpack-page_caching,和手工代码对比一下, class CategoriesController...rails内置了query cache (https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters

4.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

Rails框架流行在他设计理念

2、Convention Over Configuration --约定高于配置 Rails几乎成了敏捷web框架代名词,Java社区Grails,.NET开源项目Mono Rails和Subsonic...文件就放在models目录里,controller,view,helper分别放在特定名称目录里,只要你按这个规则做了,那一切很简单,如果你较真抬杠非不这么放,那么也许能达到目标,但很累。...2、O/R Mapping: NHibernate,IbatisNet等ORM架构都有至少有一个记录OR映射关系配置文件,然而Rails框架没有,它使用Scaffold生成model,默认情况下就是英文复数表名对应单数...不是在运行时执行基于反射映射,而是直接生成和编译数据访问层。...他们设计模式都是ActiveRecordActiveRecord做CRUD很简单,每个对象可以有自己Fetch,FetchByxxx方法,从开发者角度看这些对象,它们知道如何加载和保存自己,对象自己来维护

1.9K50

新手RoR十分钟初体验Step By Step

Installer - Windows 安装即可,最新版1.8.5-21 2、测试是否安装成功 建议一个Test.rb文件,内容如下 hello = "Hello Ruby World."...结果出来 也可以启动FreeRIDE,新建一个文件,保存,按F5就可以运行得到结果了。在FreeRIDEEdit菜单==>Preferences......支持 activerecord (1.14.4) ORM工具,类似Java中Hibernate之类 activesupport (1.3.1) Rails框架所依赖一些基础工具类 rails...(1.1.6) Web应用框架Rails包含模板引擎,控制层及ORM 5、默认安装后模块有 fxri (0.3.3)     Graphical interface to the RI documentation...hello_ro_r_controller_test.rb       create  app/helpers/hello_ro_r_helper.rb 创建一个app/views/hello_ro_r目录及三个文件

1.6K10

如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

自建服务器难免会遇到这样问题,配置SSL很麻烦,虽然一部分人来说这也是一种乐趣,但是如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展关系型数据库...在您喜欢文本编辑器中打开应用程序数据库配置文件。...rescue ActiveRecord::ConnectionNotEstablished ActiveRecord::Base.establish_connection(YAML.load_file...我们现在创建并编辑该库存文件: sudo vi /etc/puma.conf 此文件每一行都应该是您要puma-manager管理应用程序路径。立即将路径添加到您应用程序。...在您应用程序可供外部用户访问之前,您必须设置Nginx反向代理。

5.4K10

不是 Ruby,而是你数据库

在对整个 Rails 进行全面基准测试之前,我们先来审视一下 Rails ORM:ActiveRecord。...JIT 开销、Rack 和 Rails HTTP 解析和转发多层堆栈,除了向数据库插入查询耗时 190ms 之外,整体性能影响不大。...如上所述,技术性能问题是由 Ruby 而不是 Rails 引起ActiveRecordRails实现,而非模式 per-sé)是系统(关系数据库)抽象,需要大量详细知识来保持性能。...我曾在一个拥有百万级用户应用程序中,导致数据库服务器集群崩溃:原因在于一个无关控制器简单更改,使 Rails 切换到一个外部连接,该连接具有巨大物化视图,本不应以这种方式连接(用于报告)。...对于外部数据库,这是偏移量。根据你设置,Ruby 线程甚至可能在数据库进行查找时继续工作。

11430

《Prometheus监控实战》第8章 监控应用程序

如果你正在监控现有应用程序,那么可以创建一个特定网页或端点优先级列表,并按重要性顺序其进行监控 测量对外部服务和API调用次数和时间,例如,如果你应用程序使用数据库、缓存或搜索服务,或者使用第三方服务...方法、函数或类似票房指标进行分类并清晰地标识它们,以便了解指标生成内容和位置 ---- 8.2 指标 我们使用以下两种类型指标,尽管它们之间有很多重叠 应用程序指标:通常用于衡量应用程序代码状态和性能...最显著地方是应用程序周围输出和外部子系统,例如数据库或缓存 如果应用程序发出日志,那么可以识别日志包含内容,并查看是否可以使用这些内容来衡量应用程序行为 8.2.6 监控应用程序示例 mwp-rails...让我们创建一个作业来抓取/metrics端点,然后把Rails服务器添加到基于文件服务发现中,按主机名添加3个Rails服务器 代码清单:Rails服务器服务发现 ?...接下来通过prometheus.yml配置文件创建新作业 - job_name: rails file_sd_configs: - files: - targets/rails

4.5K11

如何在Ubuntu 14.04上使用Git Hooks部署Rails应用程序

使用Git hooks将允许您通过简单地将更改推送到生产服务器来部署应用程序,而不必手动拉动并执行诸如执行数据库迁移之类操作。...准备你Rails应用程序 在您开发机器上,很可能是您本地计算机,我们将准备您要部署应用程序。 可选:创建Rails应用程序 理想情况下,您已经拥有了要部署Rails应用程序。...rescue ActiveRecord::ConnectionNotEstablished ActiveRecord::Base.establish_connection(YAML.load_file...我们现在创建并编辑该库存文件: sudo vi /etc/puma.conf 此文件每一行都应该是您要用puma-manager管理应用程序路径。...如果保持原样,服务器将尝试对应用程序生产环境执行以下操作: 运行bundler 创建数据库 迁移数据库 预编译资产 重启Puma 重启Nginx 如果您想进行任何更改或添加错误检查,请随时在此处执行此操作

2.5K60

一键安装Gitlab后备份、迁移与恢复

gitlab简介 GitLab,是一个使用 Ruby on Rails 开发开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用。..., 只需要将老服务器/var/opt/gitlab/backups目录下备份文件拷贝到新服务器上/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话)。...注意事项 1. gitlab在创建备份过程中会先备份出许多(db、repo等文件),再通过这些文件合并成一个备份压缩包,最后删除文件,只剩一个备份压缩包。...解决方法: 1、覆盖原来gitlab db_key_base 到新gitlab db_key_base 位置在 /etc/gitlab/gitlab-secrets.json 2、EE版本执行...if p.import_data }" CE版本执行 sudo gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy

2.1K30

大型项目如何选择ORM:Active Record 还是 Data Mappers

ActiveRecord ORMPHP框架有Laravel, Yii, CodeIgniter, CakePHP等。其他语言用有 Ruby on Rails,Django等。...ActiveRecord上手非常快,业务逻辑和持久化逻辑在一个对象里一起解决,封装越好框架持久化逻辑编程人员越透明,程序员甚至不用知道底层数据库使用是MySQL还是MongoDB。...Data Mappers带来好处主要体现在后期,比如需要优化性能,我们可以将一次请求中所有SQL批量执行,这些SQL统一放在全局持久化对象中,很方便就能实现批量处理操作。...通常$entityManager对象是全局,达到统一管理数据目的。flush()与save()方法类似,但flush()是$entityManager中所有数据存储,一般在请求结束时调用。...Data Mappers极大增强了项目在ORM模块扩展性,在ORM模块踩过坑开发者来说是一剂良药,但是良药苦口。 四.

2.1K50

如何从 MongoDB 迁移到 MySQL

目前团队成员没有较为丰富 Rails 开发经验,所以还是希望使用 ActiveRecord 加上 Migration 方式对数据进行一些强限制,保证数据库中数据合法。 ?...首先当然是更改模型『父类』,把所有的 Mongoid::Document 都改成 ActiveRecord::Base,然后创建类对应 Migration 迁移文件: ?...除了建立数据库迁移文件并修改基类,我们还需要修改一些 include 模块和 Mongoid 中独有的查询,比如使用 gte 或者 lte 日期查询和使用正则进行模式匹配查询,这些查询在 ActiveRecord...,就需要对业务逻辑进行详细地测试以保证不会有遗留问题,这也就我们项目的测试覆盖率有着比较高要求了,不过我相信绝大多数 Rails 工程都有着非常好测试覆盖率,能够保证这一部分代码和逻辑能够顺利迁移...在查找到对应数据行之后就非常简单了,我们调用对应 post= 等方法更新外键最后直接将外键值保存到数据库中,与数据迁移过程一样,我们在这段代码执行过程中也会打印出当前进度。

5K52

java与ruby直观比较

2、完全面向对象 4.4765.round=>4 nil.to_i=>0 ruby是完全面向对象,就算是数字,nil(类似java中null)也可以当作对象处理,执行相应方法 3、脚本语言 4、在命令行输入...本质:高阶函数一种特殊形式,类似于java匿名内部类 特点:1、使用时定义 2、可引用外部局部变量(闭包) java:使用偏重匿名内部类,不通用 Execute( Callback callback...class Payment < ActiveRecord::Base belongs_to :credit_card def capture PaymentGateway.capture(amount...attr_accessor :desired_result def self.capture(amount, credit_card) Response.new(desired_result) end end 三、Rails...rails project 目录包含app 、config、script等 常用包: Active Record:处理关系数据库访问 Active Pack: 处理请求,管理model/view/controller

1.5K50
领券