- 浏览: 244656 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (173)
- ruby (38)
- rails (42)
- javascript (7)
- jquery (1)
- linux (15)
- design patterns (1)
- project management (6)
- IT (7)
- life (19)
- data structures and algorithm analysis (2)
- css (1)
- prototype (1)
- mysql (4)
- html (1)
- git (3)
- novels (1)
- c (1)
- Latex (13)
- erlang (1)
- 求职 (1)
- API (0)
- Shell (4)
- Rabbit MQ (1)
- 计算机基础 (1)
- svn (2)
- 疑问 (1)
最新评论
-
zhangyou1010:
回去倒立去,哈哈。
作为一个程序员,身体很重要! -
Hooopo:
Ruby MetaProgramming is all abo ...
Metaprogramming Ruby -
orcl_zhang:
yiqi1943 写道LZ现在上学还是工作呢工作好多年了。不过 ...
2011年 -
yiqi1943:
LZ现在上学还是工作呢
2011年 -
tjcjc:
query cache
就是一个简单的hash
key就是sq ...
Rails sql延迟加载和自带缓存
遇到这样的一个问题.看代码
在work_sheet的model中
不明白为什么会这样?报错如下:
sql跑了下也是报错,没有仔细研究,就拿去请教别人去了.ambiguous原来是模棱两可的意思.在worksheet和production_plan里都有start字段,然后关联后,就无法确认是哪个的start字段了.自己再改成这样,然后试了下.可以了.
在work_sheet的model中
named_scope :working ,:conditions => ["qted = ? and start > ? ",4,DateTime.now] named_scope :starting,:conditions => "production_plans.state = 0", :include => :production_plan
#不报错 WorkSheet.working #不报错 WorkSheet.starting #报错 WorkSheet.starting.working
不明白为什么会这样?报错如下:
Mysql::Error: Column 'start' in where clause is ambiguous: SELECT `work_sheets`.* FROM `work_sheets` INNER JOIN `production_plans` ON `production_plans`.id = `work_sheets`.production_plan_id WHERE ((production_plans.state = 0) AND (qted = 4 and start > '2010-04-09 14:14:50' ))
sql跑了下也是报错,没有仔细研究,就拿去请教别人去了.ambiguous原来是模棱两可的意思.在worksheet和production_plan里都有start字段,然后关联后,就无法确认是哪个的start字段了.自己再改成这样,然后试了下.可以了.
named_scope :working ,:conditions => ["qted = ? and work_sheets.start > ? ",4,DateTime.now]
评论
2 楼
orcl_zhang
2010-04-10
让我们看看其他人是怎么做的.
至少在searchlogic里面,如果这样写的话,生成的named_scope,每个表无论是否和其他表发生关联,都会加上这样的一个表名.看来这样做是最保险的了.
>> WorkSheet.production_plan_state_equals(0) ProductionPlan Columns (1.4ms) SHOW FIELDS FROM `production_plans` WorkSheet Load (0.5ms) SELECT `work_sheets`.* FROM `work_sheets` INNER JOIN `production_plans` ON `production_plans`.id = `work_sheets`.production_plan_id WHERE (production_plans.state = 0) +----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+ | id | nu... | my... | cr... | up... | name | de... | de... | eq... | start | end | re... | di... | note | qu... | pr... | rate | qted | ch... | de... | +----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+ | 82 | GZ... | 105 | 20... | 20... | 下料 | | | | 20... | 20... | | 0 | | 3 | 32 | 0.2 | 1 | 1 | 0 | | 83 | GZ... | 105 | 20... | 20... | 下料 | | | | 20... | 20... | | 0 | | 3 | 32 | 0.2 | 1 | 1 | 0 | | 84 | GZ... | 105 | 20... | 20... | 下料 | | | | 20... | 20... | | 0 | | 3 | 32 | 0.2 | 1 | 1 | 0 | | 85 | GZ... | 105 | 20... | 20... | 下料 | | | | 20... | 20... | | 0 | | 2 | 32 | 0.2 | 0 | 1 | 0 | +----+-------+-------+-------+-------+------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+------+------+-------+-------+ 4 rows in set >> WorkSheet.qted_equals(2) WorkSheet Load (0.4ms) SELECT * FROM `work_sheets` WHERE (work_sheets.qted = 2) => []
至少在searchlogic里面,如果这样写的话,生成的named_scope,每个表无论是否和其他表发生关联,都会加上这样的一个表名.看来这样做是最保险的了.
1 楼
orcl_zhang
2010-04-09
Robbin真是狠准快啊。这贴这么快就被打到新手贴了。因为正上班,草草就结贴了。本来还想等回去在补充下的,不过看来没机会了。等家里能上网了,在好好发一贴。je手机能登录了,感觉挺不错的。
发表评论
-
calendar
2012-02-24 11:04 892http://fullcalendar.vinsol.com/ ... -
ActiveRecord::Dirty
2011-11-21 10:29 793引用Track unsaved attribute chang ... -
TinyTDS
2011-09-20 09:29 880tiny_tds https://github.com/ra ... -
pandoc-ruby
2011-09-11 11:50 1224https://github.com/alphabetum/p ... -
Rails: Calling render() outside your Controllers
2011-04-28 17:15 838From:http://blog.choonkeat.com/ ... -
为什么这样才能装上
2011-02-20 10:39 1054引用u2@u2-laptop:~$ sudo gem inst ... -
Rails的transaction
2011-01-07 18:36 3066今天同事问我关于rails transaction,如 ... -
Rails sql延迟加载和自带缓存
2010-12-30 01:11 1619color_lot_manuallies = color_lo ... -
关于rhtml
2010-12-23 00:26 877在视图里有这样一段代码 sorted_op_items = o ... -
will_paginate ajax
2010-11-26 13:21 918两种方法 一, @@pagination_options ... -
save > save!(转)
2010-11-19 19:57 763Thoughtbot folks have a great a ... -
USE INDEX with Active Record finders(转)
2010-11-18 22:07 898可以通过强制指定index的方法优化find MySQL do ... -
html转义
2010-11-17 23:03 961$("#contacts").html(& ... -
Rails HTTP Status Code to Symbol Mapping
2010-11-17 22:40 1630http状态码http://zh.wikipedia.org/ ... -
Scaling Rails很不错的视频
2010-09-29 18:10 827自从railscasts开始讲解rails3后就很久没看了。 ... -
ActionController源码(待续)
2010-09-20 15:14 1039/usr/local/lib/ruby/gems/1.8/ge ... -
rails源码ActionSupport(待续)
2010-08-31 16:59 942一些奇淫技巧 class Object # An ... -
动态的增加auto_complete
2010-08-30 12:17 901http://www.iteye.com/problems/3 ... -
rails 记录
2010-08-26 15:27 764代码里有这样一句 self.purchase_invoices ... -
用Array来实现OrderedHash
2010-08-18 14:29 921偶然发现电脑的角落里有这样的一段代码.功能是用Array实现的 ...
相关推荐
SQL,全称Structured Query Language,是用于管理和处理关系数据库...综上所述,这个教程全面覆盖了SQL的基础到进阶知识,从创建表、数据操作、查询优化,到数据库的管理和用户权限控制,为学习SQL提供了系统性的指导。
信息化时代学好一门技术很有必要,这是学sql语言的最基础查询语句,多多理解你一定会有所感悟的。
在IT领域,数据库是至关重要的组成部分,特别是在...无论是开发人员、数据分析师,还是系统管理员,扎实的SQL基础都将对职业生涯大有裨益。所以,不论你是初学者还是希望巩固基础,现在就是开始探索SQL数据库的好时机。
以下是一些SQL的基础知识,涵盖了创建与管理数据库、表、索引、视图以及执行各种查询。 1. **创建和删除数据库**: - `CREATE DATABASE` 语句用于创建新的数据库,如 `CREATE DATABASE database-name`。 - `DROP ...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,...对于想要深入理解和使用Oracle的IT从业者来说,这些都是必不可少的知识点。通过深入学习和实践,可以有效地提高工作效率并确保数据库系统的稳定运行。
要想学好SQL Server 2005,选择一本适合自己的入门书是非常重要的。本书从数据库基础开始,循序渐进地讲解了数据库对象编程及数据库应用系统开发,章节安排合理,由浅入深,通过生动的实例和详细的代码注释,带领...
要学好Java并找到一份相关工作,需要对整个学习过程有深入的理解和坚持不懈的努力。Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据重要地位。以下将详细阐述学习Java的不同阶段及其关键知识点。 首先,...
总之,学好编程语言,尤其是Java,需要一个系统的学习计划,从基础知识到高级技术,再到实战项目,每一步都不可或缺。通过精心规划学习路线,明确技术点,深入理解设计原理,重视学习过程中的注意事项,以及积极参与...
要学好JavaEE,首先需要掌握Java的基础语法。对于初学者来说,理解并熟练运用Java的I/O包、Util包以及Lang包至关重要。这些包包含了处理输入输出、实用工具类以及基本数据类型操作等功能的核心类和接口,是进行高级...
1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL, 但可以看懂它们,你就可以跳到2。否则请先学习一下数据库基础和SQL语言, 不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后...
学好SQL Server 2005数据库是学习其他大型数据库系统的基础。 SQL Server 2005包含的重要组成部分是Transact-SQL语言,它是一种常用的数据库操作语言,具有广泛的应用性和强大的灵活性。学生在学习SQL Server 2005...
### PL/SQL编程基础知识详解 #### 一、PL/SQL简介 PL/SQL(Procedural Language for SQL)是Oracle数据库的一种内置过程语言,它结合了SQL的数据操作能力与传统程序设计语言的过程控制功能,是一种非常强大的数据库端...
《21天学好JAVA》是一本旨在帮助初学者在短时间内掌握JAVA编程基础的教程。在21天的学习过程中,读者将逐步理解JAVA语言的核心概念,掌握编程技巧,并建立起坚实的编程思维。本书以实践为导向,理论与实例相结合,...
在学习本课程的时候,一定要动手实现一个需求,写完了之后一定要多思考原理,并且看看是否有其他的方式实现,这样能快速和深入的学好本课程。 ? 课程收获: 在学习完本系列中所有的课程后,可以实现日常工作中绝大...
对于想要学习ASP.NET的新手来说,了解并掌握其核心概念和技术至关重要。以下是一些关键知识点,将帮助你有效地学习ASP.NET。 1. **基础概念**:首先,你需要理解.NET框架,它是ASP.NET的基础,提供了类库、编译器和...
1. 如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看懂它们,你就可以跳到2。 2. 要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:...
"怎样短时间学好VF.doc"这个文档可能会提供一些快速学习的技巧和实战案例,建议仔细阅读并按照其中的指导进行操作。 此外,理论与实践相结合,结合相关的书籍、在线教程和视频课程可以加快学习进度。例如,学习VF的...
《Office编程之三天学好ADO》是一门专为初学者设计的教程,旨在帮助学习者在短时间内掌握如何在Office环境中利用ADO(ActiveX Data Objects)进行数据操作。ADO是Microsoft开发的一个强大工具,用于访问和操作各种...
sql server 2000是一本非常不错的数据库入门教程。在学习庞大复杂的2005之前,强烈建议你先从基础学起,从重点学起。2005是2000的扩展和延伸,所以学习好2000是学好2005的必要阶段,而本书正是你的最佳选择。