hiroysato-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-Apr-03 11:00 UTC
[Sybase Adaptor] find_by_xxx does not work correctly.
Hi Please advice me about the following problem. * Problem find_by_xxx method does not work correctly the following caes with sybase adaptor. * How to reproducible model :users t.column :code, :string <-- :string column t.column :last_name, :string t.column :first_name,:string>> User.find(1)=> #<User:0x2abe232a68e8 @attributes={"code"=>"1", "id"=>"1", "first_name"=>"hiroyuki", "last_name"=>"sato"}> code data only include number>> User.find_by_code("1")ActiveRecord::StatementInvalid: RuntimeError: SQL Command Failed for User Load: SELECT * FROM users WHERE (users.[code] = 1) This SQL should be quote like this SELECT * FROM users WHERE (users.[code] = "1") * probelm source sybase_adapter.rb 279 def quote(value, column = nil) 280 return value.quoted_id if value.respond_to? (:quoted_id) 281 282 case value 283 when String 284 if column && column.type == :binary && column.class.respond_to?(:string_to_binary) 285 "#{quote_string(column.class.string_to_binary(value))}" 286 elsif @numconvert && force_numeric?(column) && value =~ /^[+-]?[0-9]+$/o <-- here 287 value 288 else 289 "''#{quote_string(value)}''" 290 end sybase_adapter.rb 302 def force_numeric?(column) 303 (column.nil? || [:integer, :float, :decimal].include? (column.type)) 304 end I think force_numeric? method should be return false Any idea? * environment ActiveRecord 1.15.3 Thank you for your advice. -- hiroyuki sato --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---