`
like.eagle
  • 浏览: 253135 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveRecord.find方法中":conditions"的应用

阅读更多

在SQL文的查询条件中经常会用得到关键字in,例如:

SELECT * FROM accounts WHERE nick_name = 'nicknm' AND id IN ("1","2");

 

此时如果利用Rails的find方法,代码如下所示:

 

 

require "rubygems"
require "active_record"

module ActiveRecord
class Base
def self.each_cons(n)
offset = 0
loop do
size = yield(offset)
break if size < n
offset += n
end
end
end
end



ActiveRecord::Base.establish_connection(
:adapter => 'mysql',
:host => 'localhost',
:database => 'myapp_development',
:username => 'my',
:password => '123'
)

class Account < ActiveRecord::Base
establish_connection(
:adapter => 'mysql',
:host => 'localhost',
:database => 'myauth_development',
:username => 'my',
:password => '123'
)
end

#condns 是个数组
condns = []
condns << "1"
condns << "2"

#非常值得注意的是:此时传给in(即第二个?)的参数一定要是数组类型的,
#否则返回的不是想要的结果。
#举例说明:如果将condns设置成字符串类型→"1,2",那么下述find方法解析完的
#SQL是SELECT * FROM accounts WHERE nick_name = 'nicknm' AND id #IN ("1,2");
#而我们期待的结果应该是:
#SELECT * FROM accounts WHERE nick_name = 'nicknm' AND id IN 
#("1","2");
accounts = Account.find(:all, 
:conditions => ["nick_name = ? and id in (?)",  "nicknm",  condns],
:order => 'id asc',
:limit => 1000)
分享到:
评论

相关推荐

    简单Castle.ActiveRecord.Generator

    Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...

    ActiveRecord简单实例_activerecord.zip

    在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...

    Castle.ActiveRecord (.NET FrameWork 2.0)

    Castle.ActiveRecord For .NET FrameWork 2.0 ...Castle.ActiveRecord.dll:V2.1.2.6725 NHibernate.dll:V2.1.2.4000 Castle.Core.dll:V1.1.0.0 Castle.Components.Validator.dll:V1.0.3.4333

    active_record_migrations:ActiveRecord独立迁移(适用于非Rails项目)

    将此行添加到应用程序的Gemfile中(如果没有,请运行bundle init ): gem 'active_record_migrations' gem 'sqlite3' # or 'pg', 'mysql2', ... 然后执行: $ bundle --binstubs 创建一个Rakefile: require ...

    Java工具包Hutool Wiki PDF版

    1. 方法优先于对象:Hutool倾向于在工具类中使用静态方法,以简化调用和减少代码冗余。 2. 自动识别优于用户定义:Hutool在很多模块中利用逻辑自动识别参数,减少了不必要的用户输入,提高易用性。 3. 便捷性与灵活...

    activerecord-database-views:允许将数据库视图存储为sql文件并易于应用

    database-views 允许将数据库视图存储为sql文件并易于应用安装只需Gemfile添加到您的Gemfile gem 'activerecord-database-views' 并运行bundle install用法将将要从中生成视图SQL放置到db\views目录中(实际的视图...

    lazy_find:简化了ActiveRecord中的first,last,take方法

    Simplified the first,last,take methods in ActiveRecord.So instead of using where and first, you can directly use first. 安装 将此行添加到您的应用程序的Gemfile中: gem 'lazy_find' 然后执行: $ ...

    jfinal开发手册

    JFinal 是一款基于 Java 语言开发的极速 Web 开发框架,它的设计理念包括开发迅速、代码简洁、易于...开发者可以通过阅读本手册深入理解 JFinal 的使用方法,并在实际开发中高效地运用 JFinal 来构建 Web 应用程序。

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    Ruby-on-Rails-3.rar_site:www.pudn.com

    4. **ActiveRecord**:介绍Rails的ORM(对象关系映射)系统,包括模型的创建、关联、查询以及迁移操作。 5. **视图与模板**:讲解ERB或Haml等模板语言,如何渲染HTML并结合Helper方法创建动态视图。 6. **控制器**:...

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...

    Castle.ActiveRecord 升级NHibernate到3.4.0GA

    2、Castle.ActiveRecord.Web 3、Castle.Components.Validator 4、NHibernate.JetDriver 5、NHibernate.Search 为了和原有版本区分开,特地将文件版本均升级到了3.4.0.4000,产品版本没有改动。 关键词:Castle....

    MyBatis-Plus v3.3.2 使用教程1

    MyBatis-Plus 的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。 MyBatis-Plus 的特点包括: 1. 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。 2. 损耗...

    activerecord-relations_annotations:使用自定义数据注释 ActiveRecord 关系对象

    安装将此行添加到应用程序的 Gemfile 中: gem 'activerecord-relations_annotations' , '~&gt; 0.0.1' 然后执行: $ bundle或者自己安装: $ gem install activerecord-relations_annotations用法不是最好的例子,但给...

    activerecord-mysql-unsigned:启用使用整数类型中的“ unsigned”选项来迁移ActiveRecord

    将此行添加到您的应用程序的Gemfile中: gem 'activerecord-mysql-unsigned' 然后执行: $ bundle 或将其自己安装为: $ gem install activerecord-mysql-unsigned 用法 在迁移中,您可以定义整数字段,例如:...

    浅谈MyBatis-Plus学习之ActiveRecord.docx

    在 MyBatis-Plus(MP)中,ActiveRecord(AR)模式是一种强大的工具,它将对象与数据库表的关系紧密地绑定在一起,简化了数据库操作。AR 模式的核心思想是,一个 Java 类对应数据库中的一个表,类的实例对应表中的一...

    Castle官方下载

    Castle是.NET平台上一个开源、全面的软件开发框架,它提供了许多功能强大的组件和服务,包括 inversion of control(IoC)容器、动态代理、AOP(面向切面编程)、以及用于构建可扩展应用程序的基础架构。在本篇文章...

    [其他类别]ActiveRecord简单实例_activerecord.zip源码ASP.NET网站源码打包下载

    [其他类别]ActiveRecord简单实例_activerecord.zip源码ASP.NET网站源码打包下载[其他类别]ActiveRecord简单实例_activerecord.zip源码ASP.NET网站源码打包下载[其他类别]ActiveRecord简单实例_activerecord.zip源码...

    ruby-destroyed_at, 用于安全销毁的ActiveRecord Mixin.zip

    ruby-destroyed_at, 用于安全销毁的ActiveRecord Mixin DestroyedAt 查找帮助?如果是一个 Bug ,请在GitHub上打开一个问题。安装将 destroyed_at gem 添加到 Gemfilegem 'destroyed_at'你可以在每个模块中

    C# Castle.ActiveRecord CS源码示例教程.zip

    在 Winform 应用中,你可以利用 Castle.ActiveRecord 提供的 CRUD(创建、读取、更新、删除)操作方法,轻松地与数据库进行交互。例如: ```csharp using (var session = ActiveRecordMediator&lt;User&gt;....

Global site tag (gtag.js) - Google Analytics