ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

RedMineのプラグイン作成でハマった話 その2

話は前後?するけれど、RedMineのプラグイン作成のつづき

このまえの

RedMineのプラグイン作成でハマった話
http://blog.goo.ne.jp/xmldtp/e/032ea46c8fc93828e3df200d01b65346

では、
http://www.r-labs.org/projects/r-labs/wiki/GuideSkeleton

をやったので、今日は
http://www.r-labs.org/projects/r-labs/wiki/GuideInitRb
http://www.r-labs.org/projects/r-labs/wiki/GuideModel
http://www.r-labs.org/projects/r-labs/wiki/GuideControlSkelton
http://www.r-labs.org/projects/r-labs/wiki/GuideForProject
の途中まで

■前提条件
MySQLは、まえやったまま、つまり
mysqld --skip-grant-tables
で立ち上げたまま
ディレクトリはC:\Bitnami\redmine-3.0.2-0\apps\redmine\htdocs
つまり
cd C:\Bitnami\redmine-3.0.2-0\apps\redmine\htdocs
した後の話。
それ以外も、基本的には、上記サイトの続きの話。
ハマったも5番まできたので、今度6番から




■ハマった6 モデル作成できない

ruby bin/rails generate redmine_plugin_model redmine_standard foo project_id:integer

とやったら、

ActiveRecord::StatementInvalid: Mysql2::Error: Table 'redmine_development.schema_migrations' doesn't exist: SELECT version FROM schema_migrations

っていうエラーschema_migrationsテーブルが無いらしい。

http://d.hatena.ne.jp/name-3333/20100411/1271000161
を参考に、schema_migrationsテーブルを作成する

mysqlで、use redmine_developmentして、redmine_developmentデータベースに入った後、

CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB

を実行して、再度やったらうまくいった。




■ハマった7 プラグインが表示されない

その後

ruby bin/rails generate redmine_plugin_controller redmine_standard foos index new show edit

して、コントローラーとViewをつくり、いったんマシンを落として、再度立ち上げたんだけど・・・
なにも起こらない。

bundle exec rake db:migrate_plugins RAILS_ENV='production'

して、プラグインをインストールしても、何も起こらない・・・

理由は、init.rbをかえていないからの模様。

最終的に、以下のように書き換えた。

# encoding: UTF-8

require 'redmine'

Redmine::Plugin.register :redmine_standard do
  name 'Redmine Standard plugin'
  author 'Author name'
  description 'This is a plugin for Redmine'
  version '0.0.1'
  url 'http://example.com/path/to/plugin'
  author_url 'http://example.com/about'

  project_module :standard do
    permission :view_foos, :foos => [:index, :show]
    permission :manage_foos, :foos => [:new, :edit, :create, :update, :destroy, :preview],
               :require => :member
  end

  menu :project_menu, :standard, { :controller => 'foos', :action => 'index'}, :param => :project_id

end



それと
http://www.r-labs.org/projects/r-labs/wiki/GuideForProject
にあるように、表示するには
  管理→ロールと権限、
  各プロジェクトの設定→モジュール
の設定が必要




■ハマった8 エラーになる

エラーになって、全く動かない。
理由はconfig/routes.rbを設定しないからみたい。
これを、以下のように書き換えた。



# Plugin's routes
# See: http://guides.rubyonrails.org/routing.html

Rails.application.routes.draw do
resources :projects do
resources :foos do
post 'preview', :on => :collection
put 'preview', :on => :member
end
end
end






これで一応動いたんだけど、まだまだ
http://www.r-labs.org/projects/r-labs/wiki/GuideForProject
の「index ページの表示」以下の設定をしないといけない・・・