关于find方法中boolean型的问题
悬赏:5 发布时间:2009-04-18 提问人:阿拉觉得方腊; (初级程序员)
Message.find(:first, :conditions => {:read => true})
=> #
为什么上面的方法可以,下面的方法就不行
其中t.column :read, :boolean
谢谢指点!
Message.find(:first, :conditions => ['read = ?', true])
ActiveRecord::StatementInvalid: Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'read = 1) LIMIT 1' at line 1: SELECT * FROMmessages
WHERE (read = 1) LIMIT 1
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:188:inlog'
execute'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:309:in
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/mysql_adapter.rb:563:inselect'
select_all_without_query_cache'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/connection_adapters/abstract/query_cache.rb:62:inselect_all'
find_by_sql'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:635:in
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1490:infind_every'
find_initial'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1452:in
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:587:in `find'
from (irb):3
[b]问题补充:[/b]
我的问题是文什么上面的行,下面的不行。
而且我成功执行过,Album.find(:first, :conditions => ['user_id = ? and id = ? and active = ?',1,3, true])
=> #
我感觉就是很矛盾很困惑,怎么有的可以,有的不可以,