レビュアブルマインドのSQLite対応

注意:ここで紹介しているのは、オリジナルのテーブル定義を変更します。よって動作確認のみにしてください、そのまま使い続けるのは止めた方が良いです。

レビュアブルマインドという、Railsで作られたGTDツールを使ってみた。が、何やらSQLiteに対応していないという事で中を見てみた。

どうやらテーブルのカラム名で’from’という名前を使っている事が問題になっている模様。SQLのfromと名前が衝突してると、SQLite上では扱われてしまうのかも。fromとかtoとかいうフィールド名は現状避けた方が無難でしょうね。

こんな感じにしたらとりあえず動いています。まずはこれでmigrate。

class RenameSchedulesFromToFrom < ActiveRecord::Migration
  def self.up
    rename_column :schedules, :from, :from_a
  end

  def self.down
    rename_column :schedules, :from_a, :from
  end
end

そしてmodel/schedule.rb に以下を加える。

def from;  from_a end
def from=(a); from_a = a end

以上でエラーもなく、SQLiteで使えていますので。こんな事しないでfromを置換すればいいのですけど、
ありがちな単語だし本当にこれが原因か確認したいだけでしたので、あくまでもとりあえずの方法です。

※ActiveRecordだと、aliasの指定をしても駄目なんですね。今回はとりあえずsetterとgetterを書いちゃいましたが、良いやり方あったら教えてください。

※from_aって名前は・・・求人誌みたいなので、変えて下さい。

レビュアブルマインドのはてなグループ、参加の仕方がわからない・・・のでここに書きました。(わかりました)面白いツールなので今後に期待しています。