Archive

Posts Tagged ‘sqlite’

findメソッドの動作の違い

2月 9th, 2009

今日ふとしたことで気付いたのですが、CentOS5とUbuntu8.10でrailsのfindの戻り値が違ってて困りました
フィールド名に予約語使ってしまった自分が悪いっちゃ悪いんだけど…
今回、Sqlite3DBでfromというフィールドのあるテーブルを操作しようとしました
当然fromはSELECT * FROM table WHERE ~とかで使いますのでそのままではいけません
windowsとCentOSでは`from`とすることで大丈夫だったのですが、Ubuntuではなぜかエラー;
Railsで返ってきたオブジェクトをto_xmlすると…

RUBY:
  1. # コントローラ
  2. statuses = Status.find_by_sql('SELECT DISTINCT `from` FROM WHERE~')
  3. render :text => statuses.to_xml

これで表示されるXMLは

XML:
  1. <?xml version="1.0" encoding="utf-8"?>
  2.   <statuses type="array">
  3.     <status>
  4.       <`from` class="NilClass"></`from`>
  5.     </status>
  6.     ...
  7.   </statuses>
  8. </xml>

というようにfromがなぜか「``」でエスケープされたままです;
Railsのverは全て揃えてあるのですが、Sqlite3はそれぞれ用意されているパッケージのものなのでその違いなのでは…と思っています
今後のことも考えるとフィールド名を変えた方がいいのかも…

,