标准格式是:ActiveRecord::Base.connection.execute(sql)
namespace :opengoss do
desc "USAGES: rake opengoss:collect_rules"
task :collect_rules => :environment do
@collect_rules = CollectRule.find :all
@collect_rules.each do |rule|
type = rule.rule_type.to_i
case type
when 1
daily_collect_rule(rule.id)
when 2
weekly_collect_rule(rule.id)
when 3
monthly_collect_rule(rule.id)
end
end
end
def daily_collect_rule(id)
items = CollectRuleItem.find(:all, :conditions => ['collect_rule_id = ?',id.to_i])
unless items.empty?
items.each do |item|
update_aps(id,item)
end
end
end
def weekly_collect_rule(id)
now = Time.now
weekly = {'monday' =>1,'tuesday' => 2,'wednesday' => 3 , 'thursday' => 4 , 'friday' => 5 , 'saturday' => 6 ,'sunday' => 0 }
items = CollectRuleItem.find(:all, :conditions => ['collect_rule_id = ? and start_date = ? ',id.to_i, weekly.index(now.to_date.cwday)])
unless items.empty?
items.each do |item|
update_aps(id,item)
end
end
end
def monthly_collect_rule(id)
now = Time.now
items = CollectRuleItem.find_by_sql("SELECT * FROM `collect_rule_items` WHERE collect_rule_id = #{id}")
unless items.empty?
items.each do |item|
monthly_update_aps(id,item)
end
end
end
def update_aps(id,item)
now = Time.now
con1 = item.start_time < now.hour && item.end_time > now.hour && item.collect_option?
con2 = (item.start_time >= now.hour || item.end_time <= now.hour ) && !item.collect_option?
if con1 || con2
puts "11111"
ActiveRecord::Base.connection.execute("UPDATE `mit_aps` SET `mit_aps`.`ap_state` = 0 WHERE `mit_aps`.`collect_rule_id` = #{id}")
else
puts "2222"
ActiveRecord::Base.connection.execute("UPDATE `mit_aps` SET `ap_state` = 2 WHERE `mit_aps`.`collect_rule_id` = #{id}")
end
end
def monthly_update_aps(id,item)
date = Time.now.to_date
con1 = item.start_date.to_date < date && item.end_date.to_date > date && item.collect_option?
con2 = (item.start_date.to_date >= date || item.end_date.to_date <= date ) && !item.collect_option?
if con1 || con2
puts "33333"
ActiveRecord::Base.connection.execute("UPDATE `mit_aps` SET `mit_aps`.`ap_state` = 0 WHERE `mit_aps`.`collect_rule_id` = #{id}")
else
puts "4444"
ActiveRecord::Base.connection.execute("UPDATE `mit_aps` SET `mit_aps`.`ap_state` = 2 WHERE `mit_aps`.`collect_rule_id` = #{id}")
end
end
end
分享到:
相关推荐
标题中的“model自动生成对应crud sql语句”指的是在软件开发过程中,利用特定的工具或框架,通过定义数据模型(Model)自动生成功能齐全的CRUD(Create, Read, Update, Delete)SQL语句的技术。这种方法可以显著...
通过ActiveRecord,开发者可以使用面向对象的方式来操作数据,而无需编写SQL语句。 2. **ActionController**:负责处理HTTP请求并生成HTTP响应。控制器是MVC架构中的C,它连接模型和视图,处理用户输入,调用模型...
在数据库迁移文件(如`db/migrate/xxxx_create_books.rb`)中,Rails已经为我们自动生成了创建`books`表的SQL语句。 接着,我们可以创建一个控制器来处理HTTP请求,例如`rails generate controller Books`。这会...
通过定义模型类,你可以创建、读取、更新和删除数据库记录,无需写SQL语句。 七、Rails的测试 Rails强调TDD(测试驱动开发),内置了Test::Unit和RSpec测试框架。编写测试可以帮助你确保代码质量,提前发现和修复...
例如,ActiveRecord是Rails中的一个关键组件,它提供了ORM(Object-Relational Mapping)功能,允许开发者用Ruby对象直接操作数据库,无需编写SQL语句。 在Rails中,路由(Routes)是连接URL与控制器动作的桥梁。...
通过阅读和查阅Rails 2.3.5的API文档,开发者不仅可以学习到如何在Rails环境中组织代码,还能掌握如何利用其强大的特性来提高开发效率。不过要注意,Rails框架已经发展到更高的版本,新版本可能引入了更多的改进和...
- **Windows平台安装:** 在Windows环境下安装Rails需要先安装Ruby环境,然后通过RubyGems管理器安装Rails。 - **macOS平台安装:** macOS用户可以通过Homebrew工具轻松安装Ruby及Rails。Homebrew是一个高效的包管理...
4. **安装JRuby和Oracle驱动**:在Rails项目中,需要安装JRuby环境,因为Oracle驱动是Java编写的。同时,还要添加ojdbc驱动到项目的类路径中,例如`ojdbc6.jar`或`ojdbc7.jar`。 5. **配置数据库连接**:在`...
ActiveRecord是Rails中一个重要的ORM(对象关系映射)库,它提供了数据库交互的高级抽象,使得开发者能够以面向对象的方式操作数据库记录,而无需编写繁琐的SQL语句。ActiveRecord支持数据库的自动迁移,使得数据库...
它允许开发者使用Ruby代码与数据库交互,无需编写SQL语句。Rails 1.0.0支持多种数据库,如MySQL、PostgreSQL和SQLite。 2. **ActiveRecord模型**:模型层包含了业务逻辑和数据验证。开发者可以定义属性、关联(如一...
2. 数据库集成:Rails默认使用ActiveRecord,这是ORM(对象关系映射)库,允许开发者用Ruby代码操作数据库,无需编写SQL语句。 3. RESTful设计:Rails鼓励使用REST(Representational State Transfer)架构风格,将...
书中还会涵盖ActiveRecord,这是Rails用于数据库操作的ORM(Object-Relational Mapping)库,让开发者可以使用Ruby代码直接操作数据库,无需编写SQL语句。 书中还将介绍Rails的测试驱动开发(TDD)理念,包括使用...
在 Rails 中,Active Record 是一个典型的 ORM 实现,它允许开发者使用面向对象的方式与数据库交互,避免了复杂的 SQL 语句编写。例如: ```ruby # 查询状态为 "paid" 的订单,并关联用户信息,限制返回 5 条记录,...
3. **ActiveRecord**:Rails中的ORM(对象关系映射)库,它将数据库操作与业务逻辑解耦,使得开发者可以使用Ruby代码来操作数据库,无需编写SQL语句。 4. **Scaffold**:Rails提供的快速开发工具,可以自动生成CRUD...
创建新模型后,使用`rails generate migration`创建迁移文件,定义数据库表的字段和结构,然后运行`rails db:migrate`执行迁移。 6. **控制器(Controllers)**:控制器处理HTTP请求并调用模型进行业务处理。比如,...
- **概念介绍**:ActiveRecord是一种对象关系映射(Object-Relational Mapping, ORM)技术,它允许开发者用面向对象的方式来处理数据库中的记录,而无需编写复杂的SQL语句。 - **特点**:提供了诸如查询、创建、更新...
本指南将深入介绍Ruby on Rails的核心概念、开发环境的搭建以及实际项目中的应用。 1. **Ruby语言基础**:Ruby是Rails的基础,它是一门动态类型、面向对象的语言,以其简洁、优雅的语法而著名。理解Ruby的基本数据...
在本篇"ror培训第4天 -model1"中,我们聚焦于Model中的Active Record,这是一个强大的对象关系映射(ORM)工具,使得开发者可以使用Ruby语言来操作数据库,而无需直接编写SQL语句。 Active Record的迁移...
RoR的一大特色是其ActiveRecord,它是ORM(对象关系映射)的一部分,使得开发者可以用Ruby类直接操作数据库表,减少了编写SQL语句的工作量。例如,定义一个User模型,可以直接创建、读取、更新和删除数据库中的用户...