前回,検索にヒットするようになったことで浮かれて,知識データベースプラグイン(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),べんりそうだなぁ.簡単にタグクラウドが作れるとのこと.
NameError (uninitialized constant Article):
※これは,23日のcommit によって修正されてます.