脱离Rails单独使用ActiveRecord的几点需知

抛开Rails使用ActiveRecord效果非常好,因为ActiveRecord本身就是一个优秀的DBI!

首先不要再连接中写参数:

#不推荐!!!
ActiveRecord::Base.establish_connection(
    :adapter=>‘sqlite3‘,
    :database=>‘data.sqlite3‘,
    :pool=>5,
    :timeout=>5000
) 

而是将所有连接信息放在yml文件里:

adapter: mysql
host: 10.10.10.156
encoding: utf8
database: flight_db
username: xxx
password: xxx

然后直接读取yml文件中的配置:

db_conf = YAML::load(File.open(‘database.yml‘))
ActiveRecord::Base.establish_connection(db_conf)

其次,想要用什么表,你就建立一个它的stub!

class FlightDep < ActiveRecord::Base
end

是滴!你没有看错,你完全没必要再把该表的结构写出来,因为ActiveRecord会帮你统统搞定!!!

不过有2点需要注意:

1.你可能需要手动关联表名:

class FlightArr < ActiveRecord::Base
    self.table_name = "dynamic_flight_arr"
end

2.你可能需要手动关联主键名,尤其是要关联的表不是由Rails创建的:

class Airline < ActiveRecord::Base
    self.table_name = "airlines"
    self.primary_key = "code"
end

ActiveRecord的ORM对应的类必须要有一个主键,否则可以create,但是不能update,会出错。

时间: 2024-10-12 19:20:44

脱离Rails单独使用ActiveRecord的几点需知的相关文章

解决脱离rails使用activerecord报错 NameError: uninitialized constant ActiveRecord::Migrator::Zlib

上下文说明 原本系统是15.10,无奈只支持1年,所以今天升级16.04,环境答好后运行rake migratte报错 1 task :default => :migrate 2 3 desc 'Run migrations' 4 task :migrate do 5 6 ActiveRecord::Migrator.migrate('db/migrate', ENV['VERSION'] ? ENV['VERSION'].to_i : nil) 7 end NameError: uniniti

AntDeploy发布前端项目到IIS(脱离vs单独使用)

AntDeploy AntDeploy是一款开源的一键发布部署工具,目的是代替重复性的发布动作,提高部署效率 1.一键部署iis 2.一键部署windows服务 3.一键部署到Docker 4.支持增量 5.支持只发布特定文件 6.支持回滚到指定历史版本 7.支持查看发布历史记录 8.支持脱离vs单独使用 9.支持发布前端项目到iis 10.支持url点火查看是否部署成功 github开源地址 插件下载地址 使用AntDeploy之前部署一个项目到服务器IIS是如下样子 本机编译发布到指定文件夹

web开发者需知的45种Javascript技巧大全

web开发者需知的45种Javascript技巧大全 JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是很多新手踏入编程世界的第一个语言.既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人.能够编写结构清晰.性能高效的JavaScript代码的开发人员,现如今已成了招聘市场最受追捧的人. 在这篇文章里,我将分

ruby rails 重写activerecord::Base 的字段属性

在ruby rails中如果你想要保存一个属性(或读取一个属性),同时希望在保存属性(或读取一个属性)时做一些其他的操作 可以使用重写该属性的设置器或读取器的方法. 比如一个Models的表中有一个叫name的字段,希望对name进行操作 方法一. class Model < ActiveRecord::Base attr_accessible :name def name=(value) # actions write_attribute(:name,value) end def name r

脱离rails 使用Active Record

目录结构 database.yml 1 development: 2 adapter: sqlite3 3 database: db/test.db 4 pool: 5 5 timeout: 5000 001_schema.rb 1 require 'active_record' 2 class Schema <ActiveRecord::Migration 3 def self.up 4 create_table :customers, force: true do |t| 5 t.strin

Web开发人员需知的Web缓存知识

什么是Web缓存,为什么要使用它? Web缓存游走于服务器和客户端之间.这个服务器可能是源服务器(资源所驻留的服务器Add),数量可能是1个或多个:这个客户端也可能是1个或多个.Web缓存就在服务器-客户端之间搞监控,监控请求,并且把请求输出的内容(例如html页面. 图片和文件)(统称为副本)另存一份:然后,如果下一个请求是相同的URL,则直接请求保存的副本,而不是再次麻烦源服务器. 使用缓存的2个主要原因: 降低延迟:缓存离客户端更近,因此,从缓存请求内容比从源服务器所用时间更少,呈现速度更

SQL Server 利用锁提示优化Row_number()-程序员需知

网站中一些老页面仍采用Row_number类似的开窗函数进行分页处理,此时如果遭遇挖坟帖的情形可能就需要漫长的等待且消耗巨大.这里给大家介绍根据Row_number()特性采用特定锁Hint提升查询速度. 直接上菜 脚本环境可在SQL Server优化技巧之SQL Server中的"MapReduce"找到 如下查询在分页中比较常见 set statistics time on select * from ( select ProductID, rn = ROW_NUMBER() OV

github入门需知

github是一个有海量开源代码库的网站,同时也是一个软件开发管理软件,作为软件来说它集成了git这个分布式的版本控制系统,可以上传.下载和管理自己的代码. 笔者刚接触不久,把认为入门应该知道的东西稍微总结一下.以后可能还会有补充.本文写于2015年6月4日,github可能有时效性. 使用git需要有一定的命令行基础 1.github注册 注册很简单,有邮箱就能注册,要上传项目文件需要登录后点击右上角的加号创建一个Repository.Repository个数应该是不限的. 2.Reposit

Web 开发人员需知的 Web 缓存知识

最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~ 什么是Web缓存,为什么要使用它? http://blog.csdn.net/yangxing_star/article/details/9103429 Web缓存游走于服务器和客户端之间.这个服务器可能是源服务器(资源所驻留的服务器Add),数量可能是1个或多个:这个客户端也可能是1个或多个.