話は前後?するけれど、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 ページの表示」以下の設定をしないといけない・・・