- 浏览: 462547 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (470)
- 前言 (1)
- 【sys】centos6.2 (51)
- 【sys】shell (8)
- 【sys】yum (1)
- software (6)
- 【tec】ruby (16)
- 【tec】rails (35)
- 【tec】rails路由 (2)
- 【tec】rails部署 (10)
- 【tec】rails优化 (6)
- 【tec】rails测试 (11)
- 【tec】php (45)
- 【tec】android (1)
- 【tec】ios (125)
- 【data】mysql (11)
- web (6)
- 【life】文学与提升 (2)
- life (36)
- 【life】怀念 (1)
- 【web】nginx (5)
- 【web】网络与安全 (4)
- 工作随笔 (1)
- 【software】svn (5)
- 【script】jquery (10)
- powerEdge (2)
- 杂七杂八 (5)
- 【sys】ubuntu (9)
- 【sys】windows (4)
- 【tec】java (1)
- 【tec】html (3)
- 【tec】c++ (38)
- 【tec】汇编 (1)
- 【data】数据库 (1)
- 【exchange 】学术交流 (1)
- 【tec】域名空间 (1)
- 【tec】编程先知 (1)
- 【tec】网站建设 (7)
- 【sys】mac (24)
- 【sys】seo (1)
- 【tec】wp (1)
- 【software】git (4)
最新评论
-
fireDragonpzy:
呵呵 貌似我网站上的有更新 你从那里看看 这个博客维护的不及时 ...
牛人经典语录 -
Peppermintchz:
还真这么2过啊!!好怀念啊
牛人经典语录 -
fireDragonpzy:
chenhong53 写道你好,我想问一下,能不能给一组精灵数 ...
cocos2d-x事件触发的优先级 -
chenhong53:
你好,我想问一下,能不能给一组精灵数组中的精灵添加触屏优先级, ...
cocos2d-x事件触发的优先级 -
fireDragonpzy:
dreamstar1020 写道谢谢庞兄指点,写的很详细,谢谢 ...
致:上海郑兄(虚拟主机-web服务器搭建)
a = Category.new(:name => 'Ruby', :position => 1) a.save # save 还有相同方法”save!” # 有无惊叹号的差别在于validate资料验证不正确的动作, # 无惊叹号版本会回传布林值(true或false),有惊叹号版本则是验证错误会丢出例外。 b = Category.create(:name => 'Perl', :position => 2) # create也有“create!”方法,作用同save # create在执行的时候已经将资料插入数据库,无须再调用save方法 b.save(:validate => false) # 透过:valiate => false 可以略过验证 # create虽然无需再调用save方法,但仍然可以调用save方法。 Category.first # 取出第一条记录 Category.last # 取出最后一条记录 Category.all # 取出所有 Category.find(1) # 取出id=1的记录 Category.find(1, 3) Category.find([1, 3]) # 取出id为1和3的记录 # find方法会在没有取到符合条件的记录时抛出错误 # 如果你不想这样,请用:find_by_id Category.find_by_name('Ruby') # 取出name字段等于“Ruby”的记录 # 可以用and进行多字段查询 Category.find_by_name_and_postion('Ruby', 1) # 取出name='ruby' and postion=1的记录 # find_by_* 和 find_all_by_*它们的不同之处是前者会进行“limit 1”限制 Category.find_by_sql("SELECT * FROM categories WHERE name LIKE '%p%'") # 如果你想自己手写sql就可以使用这个方法 # find_by_sql没有“find_all_by_sql”方法 Category.where(:name => 'Ruby', :position => 1) # `name` = 'Ruby' AND `position` = 1 Category.where(["name = ? or position = ?", 'Ruby', 3]) # `name` = 'Ruby' OR `position` = 3 # 另外,where 是lazy loading,也就是直到真的需要取值的时候,才会跟资料库拿资料。 # 如果需要立即触发,可以接着使用.all, .first, .last,例如: # Category.where(["name = ? or position = ?", 'Ruby', 3]).all Category.limit(5).all # 限制查询记录数,它只接受这一个参数 # 如果要使用形如:“limit x, y"请组合使用“offset”方法 Category.order("position") Category.order("position DESC") Category.order("position DESC, name ASC") # 对内容排序 Category.order("position").reorder("name") # 改用name 排序 Category.order("position").reorder(nil) # 取消所有排序 Category.limit(3).offset(2) # 从第二条开始显示3条记录 Category.select('id, name') # 只查询出id,name栏位的数据 Category.readonly.first # 使用readonly可以使查询出来的结果不能再次改变其值 # 以上查询方法可以进行无顺序的自由的串接: # Category.select(..).order(..).limit(.).... Category.where("position > 1").find_each do |category| category.do_some_thing end # 如果资料量很大,但是又需要全部拿出来处理,可以使用find_each 批次处理 Category.find_each(:batch_size => 2) do |category| puts category.id end # 预设会批次查出1000条,如果需要设定可以加上:batch_size 参数。 c = Category.all c.reload # reload 重新查询出结果给c c = Category.first c.destory # 删除id = c.id的资料 Category.delete(2) # 删除id = 2的资料 Category.count # 获取记录总数 Category.average(:position) Category.maximum(:position) Category.sum(:position) # 略过... Category.where(["position>?", 2]).count # 用where缩小范围 c = Category.first c.update_attributes(:position => 6) # or # 注意下边这个,我照书上抄的,老是报错,好像不行,试着传hast,array,symbol都不行 # 版本 3.1.0 c.update_attributes('position', 6) # 更新id = c.id的记录使栏柆position=6 # 同类方法:“update_attributes!” a = Order.select("*,sum(price) as p,count(*) as c").where("a=? ",2).group("date_format(created_at,'%Y-%m')") #select 指定要查询的字段 #group 分组 # date_format mysql中的时间格式化
发表评论
-
Ruby on Rails 性能优化工具
2012-05-15 08:43 748http://www.oschina.net/news/269 ... -
论 Ruby 顶层及 Object、Kernel 的关系
2012-05-14 10:44 997http://szsu.wordpress.com ... -
网页中 pdf查看
2012-05-06 16:24 846centos:仿百科--http://www.centos.b ... -
rails走验证和不走验证方法汇总
2012-05-06 16:13 746走validation的方法: create ... -
ruby调用win32ole打开文件
2012-05-03 20:58 857http://www.iteye.com/topic/1168 ... -
rails规范
2012-04-28 13:21 1057Ruby on rails 开发规范 (一 ... -
ruby基础
2012-04-16 11:25 734http://www.oschina.net/code/lis ... -
nginx + rails 防盗链
2012-04-16 11:12 748iteye:http://ywencn.iteye.com/b ... -
rails invalid date
2012-04-15 10:54 805迁移数据库或者是跑网站的时候出现:invalid date ... -
ror技巧--空判断
2012-03-30 13:23 859取某个对象的一个属性,先判断对象是否为nil,不是nil就返回 ... -
rails 数据库配置
2012-03-26 10:43 1040驱动配置: Gemfile:gem 'mysql2', '0 ... -
spork+rspec-rails
2012-03-19 14:19 804http://www.rubyinside.com/how-t ... -
libmysqlclient.so.18错误
2012-03-17 13:08 2586设置libmysqlclient的软链,防止编译其它依赖Mys ... -
ruby base之字符串操作
2012-03-12 11:20 7981 字符串的截取:str[0,str.length-1] -
rails测试工具--rspec
2012-03-09 11:26 902http://article.yeeyan.org/view/ ... -
rails命令大全
2012-03-09 10:54 9151、创建一个Rails应用程序 $ rails app_na ... -
rails命名约定
2012-03-02 15:49 761rails命名约定 -
Rails中的link_to方法注意点
2012-02-21 19:53 751http://www.blogjava.net/pengpen ... -
ror异步传输
2012-02-21 19:34 804$.ajax({ type : "POST& ... -
rails base 之数据库---c u d
2012-02-20 14:07 843C 1 create @tempcourse = Tempco ...
相关推荐
git clone git://github.com/jordifierro/rails-api-base.git --origin rails-api-base your-project-name cd your-project-name 重命名整个项目并重置README.md: ./bin/rename_project YourProjectName 删除所
自述 此自述文件通常会记录启动和运行应用程序所需的...数据库创建 数据库初始化 如何运行测试套件 服务(作业队列、缓存服务器、搜索引擎等) 部署说明 … 如果您不打算运行rake doc:app请随意使用不同的标记语言。
ActiveRecord模型Rails实验室 目标 手动创建迁移 手动创建模型 建立模型实例方法 建立模型 您可以在spec/models目录中找到此应用程序的测试套件,并使用以下命令运行它们: bundle exec rspec 。 该实验室进行测试以...
在 Rails 中,数据库支持的模型类派生自 ActiveRecord::Base。Active Record允许您将数据库行中的数据显示为对象,并使用业务逻辑方法修饰这些数据对象。虽然大多数 Rails 模型都由数据库支持,但模型也可以是普通的...
- 定义模型类,继承自`ActiveRecord::Base`,可以自动连接到数据库表。 - 使用`has_many`、`belongs_to`等关联方法建立模型间的关联。 9. **数据库迁移(Migrations)**: - 通过创建迁移文件来改变数据库结构,...
这些类继承自`ActiveRecord::Base`,这是Rails框架提供的一个基类,它提供了与数据库交互的能力,如查询、创建、更新和删除记录。例如: ```ruby class User < ActiveRecord::Base # 定义关联、验证和其他业务逻辑...
- **Model (模型)**: 代表了应用程序的数据层,通常是一组继承自`ActiveRecord::Base`的类,每个类对应一个数据库表。 - **View (视图)**: 负责展示数据,通常由HTML、CSS和JavaScript组成,也可以使用嵌入式Ruby ...
- **集成方式**:在Rails中,Active Record是核心ORM(Object-Relational Mapping)组件,几乎所有的模型类都会继承自`ActiveRecord::Base`。 - **关联关系**:Active Record支持多种类型的关联关系,如一对一、一...
- **定义数据库表**:使用 `rails generate migration CreateTodos title:string description:text` 命令来生成迁移文件,然后运行 `rails db:migrate` 来更新数据库。 - **创建控制器**:使用 `rails generate ...
这包括安装Ruby环境(如RVM或rbenv),管理Gemfile中的依赖(通过Bundler),设置数据库配置,并确保所有必要的服务(如Nginx和Rails应用服务器Puma或Unicorn)都已安装和配置。 4. **Nginx配置**: 文件 "nginxx_...
在Ruby on Rails框架中,数据库迁移是开发过程中不可或缺的一部分,用于管理数据库模式的变化。本文将深入探讨Rails中的rake工具和数据库迁移的概念,以及如何正确地利用它们。 首先,Rails中的Migration是数据库...
接着,在ApplicationRecord(或者ActiveRecord::Base,如果你使用的是较早版本的Rails)中包含Acts As Tennant的模块,以使所有模型都具有多租户功能。 2. **设置当前租户**: 在处理每个请求时,必须设置当前租户...
开发者可以定义模型类,这些类将继承自ActiveRecord::Base,提供诸如验证、关联和其他数据库操作的方法。 2. **Views**:视图负责展示数据,通常由HTML、ERB(Embedded Ruby)或其他模板语言组成。它们与控制器交互...
class Post < ActiveRecord::Base validates_presence_of :title, :message => "Title can't be blank" end ``` - **控制器代码**: ```ruby def index respond_to do |format| format....
它的设计灵感来源于 Ruby on Rails,并以其优雅的语法、强大的功能和丰富的社区支持,成为了 PHP 世界的首选框架之一。"base-fw-lrv-5.3-master" 这个文件名暗示我们讨论的是 Laravel 5.3 版本的基础框架。 **1. ...
在Rails 3中,开发者经常面临数据库查询频繁,导致性能瓶颈的问题。为了解决这个问题,RecordCache是一个有效的解决方案,它专门设计用于缓存Active Model Records。 RecordCache是一个轻量级的库,它通过将Active ...
5. **ActiveRecord 查询接口(ActiveRecord Query Interface)**:提供了一种声明式的查询方式,允许开发者以简洁的 Ruby 代码执行复杂的数据库查询。 6. **辅助方法(Helper Methods)**:为视图提供了一些实用的...