0 0

在rails里面写mysql语句问题20

  quarterIdThe = params[:quarterThe_id].to_s    #得到--本季度操作--对话框    
  department = params[:department_id]  #得到选择的部门名称
  upThe,downThe = getUpTheDownThe(quarterIdThe) #这是我自己写的一个方法,没有错误
   busiesses = Business.find_by_sql["SELECT d.name FROM  businesses AS b
    JOIN employees AS e ON (b.employee_id = e.id)
    JOIN departments AS d ON (e.department_id = d.id)
    WHERE d.code = Department AND b.out_date <= UpThe AND b.out_date > DownThe ",{:Department => 'department',:UpThe=> 'upThe',:DownThe=> 'downThe'}]
我用的rails,这是在控制里面写的代码,主要是find_by_sql后边的代码有问题,总是提示说参数个数错误,求各位帮忙解决,或者是在model中写这个方法的话代码应该怎样写
2011年10月10日 08:55

3个答案 按时间排序 按投票排序

0 0

采纳的答案

Business.find_by_sql["SELECT d.name FROM  businesses AS b 
    JOIN employees AS e ON (b.employee_id = e.id) 
    JOIN departments AS d ON (e.department_id = d.id) 
    WHERE d.code = ? AND b.out_date <= ? AND b.out_date > ?", department, upThe, downThe] 

2011年10月11日 18:58
0 0

{:Department => 'department',:UpThe=> 'upThe',:DownThe=> 'downThe'}
你怎么这样写。。
api
# You can use the same string replacement techniques as you can with ActiveRecord#find
  Post.find_by_sql ["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]
  > [#<Post:0x36bff9c @attributes={"first_name"=>"The Cheap Man Buys Twice"}>, ...]

2011年10月12日 12:08
0 0

哇靠。LZ,你的代码应该放在code标签里面哎。看的太费劲了,写负复杂的SQL,一不小心就错了。




在model中,定义一些scope(如果是rails3,稍有不同。)
named_scope :xxx, :condition=>[...],:joins=>...
named_scope :yyy, :condition=>[...],:joins=>...

把你的查询条件拆分,或者不能拆分的尽量写成hash,而不是sql字符串。虽然效率会变慢点.....
然后,在controller中,直接当做一个类方法调用。

Business.xxx
Business.xxx.yyy    //也可以传参,具体参考API,查一下named_scope就知道具体的用法了,有很详细的例子。

2011年10月11日 15:49

相关推荐

    Rails中使用MySQL分区表一个提升性能的方法

    在Rails应用中,当面临大数据表的处理时,MySQL的分区表是一个实用的优化策略,可以显著提升查询性能。MySQL的分区表特性允许我们将一张大表分割成多个小表,以便于管理和加速查询。在本例中,针对一个名为diet_...

    rails-1.0.0

    Rails 1.0.0支持多种数据库,如MySQL、PostgreSQL和SQLite。 2. **ActiveRecord模型**:模型层包含了业务逻辑和数据验证。开发者可以定义属性、关联(如一对一、一对多、多对多)、以及验证规则,确保数据的完整性...

    Ruby On Rails教程

    Rails支持多种数据库,如MySQL、PostgreSQL等。 - **持续更新与部署:** 保持Rails版本的最新是必要的,可以通过RubyGems进行升级。对于部署到互联网服务提供商(ISP)的情况,需要考虑服务器环境的兼容性和安全性问题...

    rails-2.2.2.zip

    在Rails 2.2.2中,ActiveRecord支持多种数据库,如MySQL、PostgreSQL等,并引入了如动态查找、关联和验证等特性。 2. **ActionController**:处理HTTP请求并生成HTTP响应的核心组件。它负责路由请求到相应的控制器...

    ruby on rails 实例depot

    3. **数据库配置**:Rails默认使用SQLite数据库,但你可以通过修改`config/database.yml`文件来选择其他数据库,如MySQL或PostgreSQL。 4. **模型(Models)**:在Rails中,模型代表数据模型和业务逻辑。例如,...

    Ruby-mysql2一个现代的简单和非常快速的RubyMysql库

    6. **兼容性**:mysql2库与多种Ruby版本和框架(如Rails)兼容,确保了在不同环境下的稳定性和可移植性。 7. **丰富的元数据**:除了基本的查询功能,mysql2还提供了获取列信息、统计信息等元数据的能力,方便...

    结合使用 Oracle 和 Ruby on Rails 教程

    通过学习这篇教程,开发者不仅可以掌握如何在Rails环境中配置Oracle,还能了解到如何解决可能出现的兼容性问题和优化性能。 【知识点】: 1. **Oracle 数据库介绍**:Oracle数据库以其高性能、高可用性和安全性在...

    rails3.1.0解决数据库取出来的信息编码为utf-8

    标题 "rails3.1.0解决数据库取出来的信息编码为utf-8" 指向的是在使用Rails 3.1.0版本时遇到的一个常见问题,即从数据库检索的数据编码不是预期的UTF-8格式,导致显示异常或乱码。在Rails应用中,数据的正确编码对于...

    Ruby-RailsDBRails数据库查看器和SQL查询运行器

    6. **多数据库支持**:Rails DB支持多种数据库引擎,如MySQL、PostgreSQL、SQLite等,这使其在各种Rails项目中都能灵活应用。 7. **安全性考虑**:作为开发工具,Rails DB通常只在本地环境使用,以防止敏感数据泄露...

    连接MYSQL数据库归纳.pdf

    Web IDE指的是可以在浏览器中直接进行编程开发的IDE,Rails是Ruby语言的一个Web开发框架,Ruby on Rails是这个框架的简称,它在开发Web应用程序时,也常常会与数据库打交道。 综合以上内容,可以概括以下知识点: ...

    Ruby on Rails Web开发之旅.pdf【第二部分】

    三个资源在一起解压缩后(windows 平台下解压缩)即可得到《Ruby.on.Rails.Web开发之旅》一书。 内容简介 本书从Ruby和Rails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了Ruby和Rails的...

    Ruby on Rails Web开发之旅.pdf【第一部分】

    三个资源在一起解压缩后(windows 平台下解压缩)即可得到《Ruby.on.Rails.Web开发之旅》一书。 内容简介 本书从Ruby和Rails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了Ruby和Rails的...

    Ruby on Rails Web开发之旅.pdf【第三部分】

    三个资源在一起解压缩后(windows 平台下解压缩)即可得到《Ruby.on.Rails.Web开发之旅》一书。 内容简介 本书从Ruby和Rails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了Ruby和Rails的...

    ruby on rails 实例1

    在你提供的资源"ruby on rails 实例1"中,我们可以推测这可能是你老师的教学材料,可能包含了一些基础到进阶的RoR应用实例,帮助学生理解和实践RoR的开发。由于没有具体的文件内容,我将根据一般RoR学习路径来解释...

    Ruby+on+Rails实践

    在Ruby on Rails实践中,首先会接触到的就是Ruby语言本身。Ruby是一种动态、面向对象的脚本语言,它的语法简洁明了,注重代码的可读性和表达性。例如,Ruby支持块(blocks)、闭包(closures)、元编程...

    Ruby-SQLServerRailsActiveRecord的SQLServer适配器

    在Ruby on Rails框架中,开发者经常需要连接不同的数据库系统,如MySQL、PostgreSQL或SQL Server。本主题将深入探讨如何在Rails应用中使用SQL Server作为数据存储,特别关注`activerecord-sqlserver-adapter`这个gem...

    ruby on rails 3.1.0数据库查询方法汇总

    在 Ruby on Rails 3.1.0 中,对于数据库的操作非常便捷,主要包括数据的保存、创建、查找等功能。 1. **保存数据**: - `a = Category.new(:name =&gt; 'Ruby', :position =&gt; 1)` - `a.save` - `save` 方法用于保存...

    Go-golang的ORM除了mysql未做其他数据库的兼容

    在Go语言中,ORM(Object-Relational Mapping)框架是一种将数据库操作转化为对对象的操作的工具,它使得开发者可以使用面向对象的方式来处理数据库,而无需过多关注底层SQL语句的编写。`dorm`是Go-golang的一个ORM...

    MysqlError Commands out of sync; you can&#039;t run this command now SHOW TABLES解决方案.docx

    you can't run this command now"错误是一个常见的问题,它通常出现在多条语句连续执行时,由于某些原因导致数据连接的状态不一致,使得MySQL无法正确处理后续的命令。这个错误的根源在于MySQL的C API,当执行...

Global site tag (gtag.js) - Google Analytics