4

この質問をすることができるかどうかは正確にはわかりませんが、私は間違いなくこれに対する答えが必要です。私はRailsプロジェクト(フォーラム)に取り組んでおり、それに「プラグイン」を実装する方法を知りたいです。

基本的に、プログラミングやRuby on Railsについてあまり詳しくない人に、私のフォーラムに機能を追加してもらいたいと思っています(彼らが私のフォーラムをサーバーに複製したと仮定します)。一般的な考え方は

  • プラグインには、のような独自のディレクトリがpluginsあり、このディレクトリではプラグイン名で区切られます。
  • そのようなコマンドを実行してrake forum:plugins:install some-url、プラグインをダウンロードしてインストールすることができます
  • プラグインは、アセットを変更/追加したり、ビュー、コントローラー、またはモデルを変更したりできます。
  • プラグインは実際のフォーラムのコードを変更しません

プロジェクトを開始したとき、プラグインをインストールするパッチを1つか2つ適用するだけでよいと頭の中で思いましたが、ユーザーがフォーラムをアップグレードしなければならない場合、それはひどいことです。

だから、私の質問は次のとおりです。

  1. 上記のようにプラグインを実装するにはどうすればよいですか?
  2. レールを使用してこれを行うのは良い考えですか?

繰り返しになりますが、これらの質問が許可されているかどうかはわかりませんが、わかると思います。

明確にするために、私はSMFのパッケージ機能(フォーラムソフトウェア自体にプラグイン/パッケージをインポートしてインストールできるようにする)に似たシステムを探しています。Rails自体のプラグインではなく、Rails(フォーラム)で実行されるアプリケーションを探しています。

TL; DR:ソースコードを変更せずにRailsアプリを変更する方法を探しています。私はrails2プラグインやrubygemsを探していません。

4

5 に答える 5

2

Railsでは、ほとんどのプラグインは通常gemとして実装されています。

上記のリンクから:

gemは、パッケージ化されたRubyアプリケーションまたはライブラリです。名前(例:rake)とバージョン(例:0.4.16)があります。

代わりにそうします。Gemsは、複数のアプリケーションに存在させたい機能を作成するための最も一般的な方法です。

また:あなた自身の宝石を作る方法

于 2012-09-12T21:44:42.657 に答える
1

さて、私が質問した時から、友人が私をある方向に向けました。プラグインとして、私はそれがコードをフォーラムに入れることができるようにしたかったのですが、別のコードベースとして。のように、実際のコードには含まれていません。私の友人は私を指さしましたRails::Engine、それは最初は私が必要としていたもののようには見えませんでした。

を使用するRails::Engineと、個別のディレクトリを作成し、「アドオン」または「プラグイン」を追加できます。アプリケーションは、個別のディレクトリの影響を受けません。また、アドオンやプラグインの作成も簡単になります。

于 2012-09-14T23:23:14.203 に答える
0

書き直された答え:

あなたのリクエストをもう一度読んだ後、私はより良い答えを持っています。マスターリポジトリがあり、それにパッチを受け入れるアプリにgithubを使用してみませんか?モデル、コントローラー、ビューを編集するのに十分な技術に精通している場合は、githubを介してパッチリクエストを作成するのに十分な知識が必要です。そうすれば、それらも簡単に承認できます。

于 2012-09-14T22:17:31.930 に答える
0

機能フラグは、ユーザーが機能のオンとオフを切り替えるのに役立ちますが、コードはデプロイ時にアプリに含まれている必要があります。

于 2012-09-19T21:49:41.860 に答える
-2

新しいプラグインをインストールするには:

rails install PLUGIN [plugin_name]
于 2012-09-19T07:46:03.117 に答える