OpenProjectのチケット更新をSlackに通知する 【プラグイン不要】
動機
redmineと同様にslackに更新を通知したかったから。
前提
- OpenProjectにインターネット経由でアクセスできること
手順
Redmine同様、OpenProjectの活動情報はAtomフィード(≒RSSフィード)として出力されます。
Slackにフィードを追加することで通知を受け取れます。
OpenProjectでの操作
- OpenProjectにログインし、右上の自分のアイコンメニュー→個人設定
- 左メニューのアクセストークン
- RSSの操作でリセットをクリック
- 表示されたトークンをコピーし、適当なテキストエディタにペースト
- 更新を通知したいプロジェクトの活動ページを開く
- ページ下部のAtomをクリック
- URLをコピー。テキストエディタにペースト
- 下記のようにAtomURLにRSSトークンのパラメータを混ぜたURLを作る
https://〜/activity.atom?key=トークン
Slack(web)での操作
https://slack.com/apps/A0F81R7U7-rssにアクセスし、RSSアプリをインストールしていない場合はインストールしてください。
- https://slack.com/apps/A0F81R7U7-rssにアクセス
- 上記までに作ったトークン付きのURLをフィードURLに貼り付け。
- 投稿したいチャンネルを選択し、購読ボタン押下
- 数十分後にはslackにOpenProjectの更新情報が届き始めます。
※購読後に何かしらの情報を更新しないと届かないので注意。
通知条件を変える
フィードURLに下記のようなパラメータを追加することでチケット以外の更新情報も通知可能です。
&show_work_packages=1&show_changesets=1&show_news=1&show_wiki_edits=1&show_messages=1&show_time_entries=1&show_documents=1&show_cost_objects=1&show_meetings=1&with_subprojects=0&with_subprojects=1&apply=true
参考(Redmine版):Redmineワンポイントチェック(7): Redmineのチケット更新をSlackに通知する 【プラグイン不要】 | Redmine.JP Blog
Railsでmodelをnewまたはcreateできないエラーの回避手順
動機
railsアプリ作ってseed流そうと思ったら
NoMethodError: undefined method `create!' for 〜
というエラーが出たから。
手順
下記ページにあるようにRailsの場合、アプリケーション名が予約後となるらしいです。
私の場合、モデル名とアプリケーション名が同名だったためcreateできなかったようです。
ruby on rails - undefined method `new' for Product:Module - Stack Overflow
Rails5.2にてアプリケーション名を変更します。
- config/application.rb
module のところのアプリケーション名を変更して下さい。
私の場合は元の名前に"_app"を追加しました。
Rails5.2 での外部キーの書き方の手順
動機
integer型のidが上限に達したらどうなるんだ?という疑問
手順
そもそもRails5.1からidの型がinteger(4byte)からbigint(8byte)になったようですね。
ただし、注意点があります。
いままで(5.1より前)のようにmigrationファイルに
t.integer :user_id, null: false
なんて書いてると、userテーブルのid型はbigintなのにintegerで参照する事になってしまいます。
下記のように書きましょう。これでuser_idの型はbigintになります。
t.references :user, null: false, foreign_key: true