debiancdn

AWS, Content Delivery Network and Debian

日別アーカイブ: 2006/07/04

ActiveRecordのdatabase adapterにより挙動をかえてみる

まあようするに

 ActiveRecord::Base.establish_connection.config[:adapter]

をみると現在のdatabase adapterがわかるわけで

adapter = ActiveRecord::Base.establish_connection.config[:adapter]
if adapter == 'mysql'
 @moge = Moge.find(:first, :conditions => ["funi REGEXP ?", string])
elsif adapter == 'postgresql'
 @moge = Moge.find(:first, :conditions => ["funi ~ ?", string])
end

本当はsqlite3でREGEXがつかえるのを期待したわけだがとりあえず

 sqlite3        3.3.5-0.2+b1

では使えなかった。

wikiをみると

    * Extended POSIX regular expressions (should be easy, man 3 regcomp, or ¤http:// mirbsd.bsdadvocacy.org/man3/regcomp.htm for reference) SELECT * FROM table WHERE name REGEX '[a-zA-Z]+_{0,3}'; 

The infrastructure for this syntax now exists, but you have to create a user-defined regex matching function. >>>

ということでまだだめか。