2011年08月26日

アップデートするぞ→知識DB

知識データベースプラグインの話題ばかりでごめんなさい.
前回,検索にヒットするようになったことで浮かれて,知識データベースプラグイン(knowledgebase plugin)が少し修正されていることを記述していなかったかもしれないのでその際にやったことを軽くメモ.

まだ,バージョン割り当てられていないのですが,githubから引っ張ってくれば手に入ります.

変更は,名前が,article, category となっていたのが,kb_article, kb_category というように,どのプラグインのテーブルであるかわかりやすくなった点.他にも色々あるのだろうけど,追ってません.

タグクラウドが使えるような実装が入っているのですが,まだ自分のところではできていないのです.
さらに,このプラグイン以外に,関連プラグインのインストールが必要になっていたのでそこから行う.

・acts_as_taggable_on_steroids のインストール

https://github.com/jviney/acts_as_taggable_on_steroids



・acts_as_taggable_on のインストール

% ruby script/plugin install git://github.com/mbleigh/acts-as-taggable-on.git



これらに実はそこそこ手こずったのです...

acts_as_taggable_on_steroids は,acts_as_taggable_on プラグインを利用するのでこれがないとインストールエラーになる.このエラー原因を調べるのに,無駄な時間を使ってしまった.

% ruby script/generate acts_as_taggable_migration



とすると,redmine_development のdatabaseがないと怒られる.
RAILS_ENV=production をつけてもだめ.あれ,なにか付け方間違ってるかなぁ..

結局,色々試して分からなかったので,

set RAILS_ENV=production


とやって,環境変数をセット.

% echo %RAILS_ENV%



で正しく,変数にセットされていることを確認.


もう一度挑戦.


% ruby script/generate acts_as_taggable_migration



ここで,acts_as_taggable_on_migrationがないと怒られる.
なんで,違うスペルなんだろうと思ったら,名前が似てるけど,中身の違うプラグインが存在することを知る.

% ruby script/generate acts_as_taggable_on_migration

Missing these required gems:
acts-as-taggable-on = 2.0.0.rc1
You're running:
ruby 1.8.7.302 at C:/Ruby/bin/ruby.exe
rubygems 1.3.7 at c:/work/home/.gem/ruby/1.8, C:/Ruby/lib/ruby/gems/1.8

Run `rake gems:install` to install the missing gems.


と言われたので,言われたとおりに実行.






% rake gems:install
(in C:/Ruby/share/redmine)
gem install acts-as-taggable-on --version "= 2.0.0.rc1" --source http://gxxxr.org
Successfully installed acts-as-taggable-on-2.0.0.rc1
1 gem installed
Installing ri documentation for acts-as-taggable-on-2.0.0.rc1...
Installing RDoc documentation for acts-as-taggable-on-2.0.0.rc1...



無事に入りました.
で,もう一度migration.(もしかしたら,上記のコマンドやったので不要かも.)

acts_as_taggable と,acts_as_taggable_on_steroids の2つのプラグインでは,データベースでのテーブル名がtags/taggings でかぶってるので,migrate したときにエラーになり,共存できません.そのため,acts_as_taggable のプラグインは削除.(でいいのかな? 自分はknowledgebaseプラグインが動けばいいのできちんと確認していません.)


そのあと,githubから,最新のknowledgebase plugin を引っ張ってきてインストール.
これで動くようになるけど,以前からこのプラグインを使用している場合,taggings テーブルに要素がいくつか追加されています.

そのため,次のような処理をしないと,以前のタグが見えなくなります.
既存のタグには,context には,"tags" という文字列をセットすると見えるようになりますし,さらには,taggable_type の "Article" を "KbArticle" に変更してあげるとよいかもしれません.(後者の効果は不明)


でも,このプラグイン(acts_as_taggable),べんりそうだなぁ.簡単にタグクラウドが作れるとのこと.

でも,アップデートしたknowledgebase pluginは,検索しようとすると,結局以下のエラーが出てしまう..
NameError (uninitialized constant Article):

※これは,23日のcommit によって修正されてます.
posted by maplewine at 12:00| Comment(0) | TrackBack(0) | ruby | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック