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中的时间格式化
分享到:
相关推荐
10. **配置文件**: `.ruby-version`(用于指定Ruby版本),`Gemfile`(列出项目依赖),`database.yml`(数据库配置),`config.ru`(Rails应用启动配置)等。 压缩包中的"rails-development-environment-master....
安装使用Postgres设置Rails应用$ rails new my-rails-app --database=postgresql$ cd my-rails-app$ rails db:create$ git add .$ git commit -m "rails new"$ gh repo create$ git push origin master为单元测试...
2. **配置文件**:Rails项目包含许多配置文件,如`config/application.rb`、`config/database.yml`等。`application.rb`用于全局配置Rails应用,而`database.yml`则定义数据库连接信息,例如数据库类型、用户名、...
5. **数据库迁移(Database Migrations)**:在"db/migrate"目录下,会包含一系列的迁移文件,这些文件描述了数据库结构的变化。 6. **配置文件(Config Files)**:"config"目录下的文件管理Rails应用的全局设置,...
Rails API模板 那么它做什么以及如何使用 ...foo@bar:~ $ rails new app --api -m template.rb --database postgresql 已安装的宝石 堆栈和功能 Ruby 2.7.0 Rails 6.0.2 配置的日照 有用的.pryrc配置 配置的rub
rails new project-name --api --database=postgresql cd project-name bundle rails db:create 将这些行添加到应用程序的Gemfile中: gem 'graphql' gem 'graphql-rails-api' 然后执行: $ bundle $ rails ...
- 在 `config/database.yml` 文件中配置了三种不同的数据库环境: - `application_development`: 开发环境数据库。 - `application_test`: 测试环境数据库。 - `application_production`: 生产环境数据库。 - **...
运行`rails -d mysql abc`创建名为abc的新项目,然后在项目的config目录下修改`database.yml`文件,输入正确的MySQL连接参数。启动Rails服务器(`ruby script/server`),访问`http://localhost:3000`,如果看到关于...
在 Heroku 上创建和部署 Ruby on Rails ... $ rails new rails-heroku --database=postgresql 在这种情况下,我们需要指定将使用哪个数据库,Rails 具有默认的SQLite数据库,目前Heroku 不支持该数据库。 访问您的应
Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
Ruby on Rails与MongoDB 您可以在MongoDB的帮助下轻松创建Rails项目。在Mac上安装MongoDB 启动MongoDB服务器mongodMongodb数据目录权限 sudo chmod 777 /data/db创建一个Rails项目使用'--skip-active-record'开关...
这假设您安装了 Bundler gemPostgreSQL 要获得此应用程序的基础,请运行“rails new myapp --database=postgresql” 必须在运行此示例的机器上安装并运行 Postgres。 在第一次运行此示例之前,请通过运行以下命令...
5. **数据库(Database)**:Rails默认使用SQLite,但也可以配置使用其他数据库如MySQL或PostgreSQL。数据库迁移(Migrations)用于管理数据库结构的变化。 6. **ActiveRecord**:这是Rails的一个核心组件,它提供...
发电机铁轨米特里尔发电机入门要运行此版本的yeoman generator。... 如果您使用的数据库不同于sqlite3,则配置config / database.yml。 其他依赖SASS(宝石安装sass) 指南针(宝石安装指南针)模板我基于
Rails应用模板 我的个人Rails应用模板。 适用于在Heroku上运行的爱好项目以及我自己的喜好... rails new hello-heroku --database=postgresql --webpack=stimulus --minimal --skip-sprockets --skip-test --template=...
Rails-Journal-API 由...制作:雷德蒙德·纳卡... 在config / initializers / cors.rb中设置cors配置创建rails new <api> -api —no-sprockets -d -postgresql 数据库初始化使用config /中生成的database.yml 。 运行
在Rails项目中简单使用github action信息网路:Rails 6.0.0 数据库:PostgreSQL 测试:Rspec笔记# initialize Rails apprails new rails-github-actions-example --skip-turbolinks --skip-spring --database=...
设置 在运行之前,您应该在计算机上安装以下组件: Ruby ... database : rails_postgres_mongo_development 为ActiveRecord创建模型映射 为用户生成一个新的ActiveRecord模型: rails g model User
4. **数据库配置**:根据项目需求,可能需要配置`config/database.yml`文件以连接到你的数据库。 5. **迁移数据库**:运行`rails db:migrate`命令来执行数据库迁移,创建所需的表结构。 6. **启动服务器**:运行`...