Archive

Posts Tagged ‘sqlite’

findメソッドの動作の違い

February 9th, 2009 No comments

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

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

これで表示されるXMLは

<?xml version="1.0" encoding="utf-8"?>
  <statuses type="array">
    <status>
      <`from` class="NilClass">~</`from`>
    </status>
    ...
  </statuses>
</xml>

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

Tags: ,